我正在使用QTableWidget显示数据。我知道我可以使用addAction方法添加上下文菜单。如何将上下文菜单限制为仅特定的单元格或列?存在QActionGroup QGraphicsWidget QMenu QMenuBar QToolBar QWidget的addAction。我应该以某种方式过滤或禁用/启用信号/插槽吗?使用右键单击事件?

一个类似的问题是如何为不同的行获取不同的上下文菜单?

谢谢您的欢呼,
马蒂亚斯

最佳答案

创建自定义上下文菜单的另一种方法是实现QWidget::customContextMenuRequested()信号的插槽。在那里,您可以查询位置(QTableWidget::itemAt()-注意全局-> widget映射!)下的单元格,然后使用QMenuQAction构建自定义菜单。

另外,我会事先构建菜单,而不是只在插槽中执行(exec)它。

请记住,您必须将小部件的QWidget::ContextMenuPolicy属性更改为Qt::CustomContextMenu!

09-25 16:30
查看更多