QT新学,参考网上资源,学会了一种为特定Widget添加右键弹出菜单的一种方法:
目标:为ui中的一个widge(变量名:tui.m_VtkWidget)添加右键弹出菜单,通过分隔条为多个菜单项进行分组,示例如下
在主窗口的构造函数中添加如下代码:
QAction* newMenu = new QAction("新建", ui.m_VtkWidget);//新建一个菜单项
QAction* deleteMenu = new QAction("删除", ui.m_VtkWidget);//新建一个菜单项
ui.m_VtkWidget->addAction(newMenu);//添加动作
QAction* Separator = new QAction(ui.m_VtkWidget);//新建一个QAction,用于处理分隔条
Separator->setSeparator(true);//设置为分隔条
ui.m_VtkWidget->addAction(Separator);//增加分隔条
ui.m_VtkWidget->addAction(deleteMenu);//添加动作
connect(newMenu, SIGNAL(triggered(bool)), this, SLOT(on_action_NewMenu_triggered()));//绑定菜单函数
connect(deleteMenu, SIGNAL(triggered(bool)), this, SLOT(on_action_DeleteMenu_triggered()));//绑定菜单函数
ui.m_VtkWidget->setContextMenuPolicy(Qt::ActionsContextMenu);//将动作作为弹出菜单