Qwidget和他的子类都可以有右键菜单,QWidget下与右键菜单有关的函数有:
a) Qt::ContentMenuPlicy contentMenuPolicy() const
b) void setContentMenuPolicy ( Qt :: ContentMenuPolicy policy )
其中,a) 枚举类型有:Qt::DefaultContextMenu, Qt::NoContextMenu,
Qt::PreventContextMenu, Qt::ActionsContextMenu,
and Qt::CustomContextMenu。
使用方法:
1)默认是Qt::DefaultContextMenu。
它是利用右键菜单事件contextMenuEvent()来处理,就是要重写
contextMenuEvent( QContextMenuEvent * event )函数。
通过事件QContextMenuEvent完成
重写 QWidget 的被保护的虚函数 void QWidget::contextMenuEvent ( QContextMenuEvent * event ) [virtual protected],设置QWidget 的 contextMenuPolicy 属性为 Qt::DefaultContextMenu 值,其实默认就是这个值,不用显示设置。
1: MyWidget::MyWidget(QWidget *parent)
2: : QWidget(parent)
3: {
4: setWindowTitle(tr("Context Menu Show 2"));
5: setContextMenuPolicy(Qt::DefaultContextMenu); //其实不用设置,默认就是这个值

本文详细介绍了在QT中如何创建和管理右键菜单,包括默认的Qt::DefaultContextMenu策略,自定义的Qt::CustomContextMenu策略以及Qt::ActionsContextMenu策略。重点讲解了如何使用Qt::CustomContextMenu策略通过customContextMenuRequested信号和槽函数来实现特定位置的右键菜单,并给出了QTableView表头显示右键菜单的示例代码。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



