我正在使用QTableWidget来显示数据。我知道我可以使用addAction方法添加上下文菜单。如何将上下文菜单限制为仅特定单元格或列?存在QActionGroup QGraphicsWidget QMenu QMenuBar QToolBar QWidget的addAction。我应该以某种方式过滤oder禁用/启用信号/插槽?使用右键单击事件?
类似的问题是如何为不同的行获取不同的上下文菜单?
谢谢你,欢呼声, 的Matthias
答案 0 :(得分:2)
创建自定义上下文菜单的另一种方法是实现QWidget::customContextMenuRequested()
信号的插槽。在那里,您可以查询位置下的单元格(QTableWidget::itemAt()
- 注意全局 - >小部件映射!),然后使用QMenu
和QAction
构建自定义菜单。
另外,我预先构建菜单,而不是只在插槽中执行exec()。
请记住,您必须将小部件的QWidget::ContextMenuPolicy
属性更改为Qt::CustomContextMenu
!