QTableWidget - 仅适用于特定单元格/列的上下文菜单

QTableWidget - context menu only for specific cells/columns

本文关键字:上下文 菜单 单元格 适用于 QTableWidget      更新时间:2023-10-16

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

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

谢谢你,干杯,马蒂亚斯

创建自定义

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

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

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