QWidget及其子类都可有右键菜单,首先设置QWedget与右键菜单有关的函数setContextMenuPolicy(),属性对应项为contextmenuPolicy;
![20200729174616](https://zhaorui-open-1302411521.cos.ap-shanghai.myqcloud.com/20200729174616.png)
-
Qt::DefaultContextMenu
它是利用右键菜单事件contextMenuEvent()
也就是需要重写contextMenuEvent( QContextMenuEvent * event )函数
void SProjectTreeWidget::contextMenuEvent(QContextMenuEvent *evt){ ... }
-
Qt::CustomContextMenu
QWidget::customContextMenuRequested信号,仅仅是发出信号,所以需要写显示右键菜单的slot。
signal:
void customContextMenuRequested ( const QPoint & pos ) -
Qt::ActionsContextMenu
直接使用QWidget::actions()函数添加动作即可