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