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); //其实不用设置,默认就是这个值