Qt 去除工具栏右键菜单

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);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值