1. 去除工具栏右键菜单
正常情况下,工具栏(QToolBar) 中QToolButton设置了下拉菜单Menu,button的菜单是由左键点击后弹出,但如果误操作为右键点击菜单后,会出现一个奇怪的菜单(就是从未添加过的菜单,可能是乱码)
解决方案
//情况一
this->setContextMenuPolicy(Qt::PreventContextMenu);//禁用单击鼠标右键时弹出 部件菜单框
//隐藏右键选择菜单
//QMainWindow上加了工具条,当在工具条上点击右键时会出现菜单,点击菜单会隐藏工具条或者是出现工具条。
//如果想取消在工具条上点击右键不弹出菜单可进行下列设置:
this->setContextMenuPolicy(Qt::NoContextMenu);//隐藏右键菜单
//情况二
QToolBar *M_toolBar = new QToolBar();
M_toolBar->setContextMenuPolicy(Qt::PreventContextMenu);//禁用单击鼠标右键时弹出 部件菜单框
2.自定义设置右键选择菜单:
右键菜单自定义实现:可以通过重写contextMenuEvent(QContextMenuEvent *event)事件,QMenu+QAction即可完美实现!
//mainwindow.cpp
/*设置右键选择菜单*/
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *pMenu = new QMenu(ui->tabwidget);
QAction *select=pMenu->addAction(tr("select"));
QAction *print = pMenu->addAction(tr("print"));
connect(select,SIGNAL(activated()),this,SLOT(select()));
connect(print,SIGNAL(activated()),this,SLOT(print()));
pMenu->exec(QCursor::pos());
event->accept();
}
//mainwindow.h
void contextMenuEvent(QContextMenuEvent *event);