QTableWidget - 仅针对特定单元格/列的上下文菜单

时间:2011-05-23 08:04:26

标签: c++ qt4 contextmenu qtablewidget

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

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

谢谢你,欢呼声, 的Matthias

1 个答案:

答案 0 :(得分:2)

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

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

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