• 15478阅读
  • 10回复

QT中的右键菜单? [复制链接]

上一主题 下一主题
离线xyhsm
 

只看楼主 倒序阅读 楼主  发表于: 2007-08-07
— 本帖被 XChinux 执行加亮操作(2007-09-10) —
1、在QT中如何加入右键菜单(如在QTableView中)?
2、在QT中如何删除一个文件夹,该文件夹下有文件或文件夹,不想通过删除子目录或文件后再删除该文件夹?(我用QDir的rmdir的方法时,该文件夹必需为空)。
离线XChinux

只看该作者 1楼 发表于: 2007-08-07
1.最简单的,设置QTableView部件的contextMenuPolicy为Qt::ActionsContextMenu,然后使用addAction()方法添加现成的QAction对象。
2.我的实现方法是,在Linux下,直接调用rm -fr 命令,在Windows下,把rm的win32版本带到程序里,然后调用rm -fr命令。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线千年沉寂

只看该作者 2楼 发表于: 2007-08-07
void MainWindow::createContextMenu()
{
    spreadsheet->addAction(cutAction);
    spreadsheet->addAction(copyAction);
    spreadsheet->addAction(pasteAction);
    spreadsheet->setContextMenuPolicy(Qt::ActionsContextMenu);
}

Any Qt widget can have a list of QActions associated with it. To provide a context menu for the application, we add the desired actions to the Spreadsheet widget and set that widget's context menu policy to show a context menu with these actions. Context menus are invoked by right-clicking a widget or by pressing a platform-specific key.

A more sophisticated way of providing context menus is to reimplement the QWidget::contextMenuEvent() function, create a QMenu widget, populate it with the desired actions, and call exec() on it.

以上是《C++ GUI Programming with Qt 4》第四章关于创建右键菜单的描述。
上善若水!
离线xyhsm

只看该作者 3楼 发表于: 2007-08-08
谢谢各位的解答!
离线北风之神
只看该作者 4楼 发表于: 2007-09-10
在qt3中怎么实现呢
离线riverscape
只看该作者 5楼 发表于: 2007-09-20
2、在QT中如何删除一个文件夹,该文件夹下有文件或文件夹,不想通过删除子目录或文件后再删除该文件夹?(我用QDir的rmdir的方法时,该文件夹必需为空)。

针对这个我觉得你可以考虑递归删除,即通过删除每一个子目录下的文件后,再删除子目录,一级一级进行,直到所有的目录删除完毕,这个过程完全由程序自动完成,不需要用户干预。
离线sx0102
只看该作者 6楼 发表于: 2007-10-24
重载contextMenuEvent()函数就可以实现右键菜单.
离线fychit

只看该作者 7楼 发表于: 2008-12-11
学习
嵌入式Linux系统开发QQ群:72659572
欢迎加入讨论!
离线zcym925
只看该作者 8楼 发表于: 2009-09-22
QT3好像没有qmenu这个类哦
离线shuangusa
只看该作者 9楼 发表于: 2010-03-24
qt3中如何实现右键菜单啊
离线yangfanxing
只看该作者 10楼 发表于: 2010-03-24
引用第9楼shuangusa于2010-03-24 15:38发表的  :
qt3中如何实现右键菜单啊

contentsContextMenuEvent()?
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个