QTableWidget - 仅适用于特定单元格/列的上下文菜单
我正在使用 QTableWidget 来显示数据。我知道我可以使用 addAction 方法添加上下文菜单。如何将上下文菜单限制为仅特定单元格或列? QActionGroup QGraphicsWidget QMenu QMenuBar QToolBar QWidget 存在 addAction。我应该以某种方式过滤或禁用/启用信号/插槽吗?使用右键单击事件?
类似的问题是如何为不同的行获取不同的上下文菜单?
谢谢你并欢呼, 马蒂亚斯
I am using a QTableWidget for displaying data. I know that I can use the addAction method to add a context menu. How can I limit the context menu to only specific cells or columns? addAction exists for QActionGroup QGraphicsWidget QMenu QMenuBar QToolBar QWidget. Should I somehow filter oder disable/enable the signal/slots? Work with right click events?
A similar question would be how to get different context menu's for different rows?
Thank you and cheers,
Matthias
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
创建自定义上下文菜单的另一种方法是为
QWidget::customContextMenuRequested()
信号实现一个槽。在那里,您可以查询该位置下的单元格(QTableWidget::itemAt()
- 注意全局->小部件映射!),然后使用QMenu
构建自定义菜单> 和QAction
。另外,我会提前构建菜单,而不是仅在插槽中执行 exec() 。
请记住,您必须将小部件的
QWidget::ContextMenuPolicy
属性更改为Qt::CustomContextMenu
!Another method to create custom context menus is to implement a slot to the
QWidget::customContextMenuRequested()
signal. There you can query the cell under the position (QTableWidget::itemAt()
- watch out for global->widget mapping!), and then build a custom menu usingQMenu
andQAction
.Also, I'd build the menu(s) beforehand, and than only exec() it in the slot.
Remember that you have to change the
QWidget::ContextMenuPolicy
property of the widget toQt::CustomContextMenu
!