我想添加一个上下文(右键单击)菜单到Qt QListView。我在Qt 3.3中看到有“contextMenuRequested”(我可以使用) - http://doc.qt.digia.com/3.3/qlistview.html#contextMenuRequested。但是,我在Qt4中看不到这种方法。有谁知道如何将上下文菜单添加到QListView?Qt QListView - 上下文菜单?
回答
我不知道为什么信号已经被删除,但它仍然是一个QWidget
让您可以随时覆盖
void QWidget::contextMenuEvent (QContextMenuEvent*);
或
void QWidget::customContextMenuRequested(const QPoint& pos);
取决于上下文菜单策略设置窗口小部件。
我不知道你要完成的任务,但你可以很容易地通过调用QWidget::AddAction(QAction*)
与您要添加到您的上下文菜单中的操作和设置的上下文菜单策略添加上下文菜单在任何部件
widget->setContextMenuPolicy(Qt::ActionsContextMenu);
部件将准备,并显示上下文菜单,所有你需要做的就是挂钩的行动triggered()
信号发送到相应的处理程序
取决于您如何设置在QWidget
的ContextMenuPolicy你有几个选项。
如果您已将其设置为Qt::DefaultContextMenu
,则只需覆盖QWidget
中的contextMenuEvent(QContextMenuEvent*)
受保护功能。我相信这是默认设置。
如果您已将其设置为Qt::ActionsContextMenu
,那么只需将所有操作添加到您的小部件,并让Qt系统处理显示上下文菜单。
或者如果您已将其设置为Qt::CustomContextMenu
,则需要连接到customContextMenuRequested()
信号并实施您自己的上下文菜单处理程序。
这全部记录在网上的ContextMenuPolicy文档中。
更新链接到ContextMenuPolicy描述: [QT5](http://doc.qt.io/qt-5/qwidget.html#contextMenuPolicy-prop)和 [QT4](http://doc.qt.io/qt-4.8/qwidget.html#contextMenuPolicy-prop) – avtomaton 2015-07-01 08:25:02
- 1. 上下文菜单左键单击Qt
- 2. Qt自定义上下文菜单
- 3. QT:上下文菜单(QMenu)从QTableWidget的
- 4. 使用C++/Qt的上下文菜单
- 5. PyQT4:如何获得上下文菜单设置qListView
- 6. Qt使用菜单栏填充上下文菜单
- 7. 使用Qt Designer(Qt Creator IDE)创建上下文菜单
- 8. Qt,QListView模型
- 9. QGraphicsWidget上下文菜单
- 10. PyQt和上下文菜单
- 11. 上下文菜单
- 12. 上下文菜单
- 13. QT:触发器上的上下文菜单
- 14. GTK:定位上下文菜单项w.r.t上下文菜单
- 15. C++,Qt - 隐藏QListView
- 16. 添加菜单上下文菜单
- 17. QGLWidget上的上下文菜单问题
- 18. Qt QTableView上下文菜单和右选择
- 19. Qt设计器,缺少上下文菜单中的“去槽”?
- 20. 如何处理Qt中QLineEdit上下文菜单中的动作?
- 21. 如何禁用Qt中禁用QScrollbar上下文菜单(Windows XP)
- 22. Qt的上下文菜单中选择突破在QTreeView则
- 23. Qt RightClick QListWidget打开上下文菜单并删除项目
- 24. Qt中的rightclick事件来打开上下文菜单
- 25. Qt按左键两次为上下文菜单消失
- 26. 在Qt中连接的自定义上下文菜单
- 27. 本地化QT中的上下文菜单?
- 28. 如何隐藏QT中的qscrollbar上下文菜单
- 29. 当QT上下文菜单显示时没有keyReleaseEvent
- 30. 使用qt重新创建的Windows Shell上下文菜单
customContextMenuRequested()是一个信号,而不是重写功能 – 2010-05-20 16:52:29