快捷菜单又称为上下文菜单,通常在用鼠标右击的时候弹出。创建快捷菜单的方法和创建菜单栏菜单类似。
效果图:
一、将MainWindow类对象的ContextMenuPolicy属性设置为customContextMenu。
打开mainWindow.ui,在属性视图上找到ContextMenuPolicy,并选择CustomContextMenu。

二、创建菜单栏对象

三、在mainwindow.ui界面鼠标右键选择”转到槽“,接着点击信号对应的CustomContextMenuRequested(QPoint),单击OK。然后编辑槽函数如下


- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //一级菜单
- menu1 = new QMenu(QString::fromUtf8("编辑"));
- menu1->addAction(QString::fromUtf8("退出"));
- menu1->addAction(QString::fromUtf8("选项"));
- menu1->addAction(QString::fromUtf8("信息"));
- //二级菜单1
- menu2 = new QMenu(QString::fromUtf8("保存为"));
- menu2->addAction(QString::fromUtf8("保存为图片"));
- menu2->addAction(QString::fromUtf8("保存为视频"));
- menu2->addAction(QString::fromUtf8("保存为文本文件"));
- //二级菜单2
- menu3 = new QMenu(QString::fromUtf8("工具栏"));
- menu3->addAction(QString::fromUtf8("缩小"));
- menu3->addAction(QString::fromUtf8("放大"));
- menu3->addAction(QString::fromUtf8("插入"));
- menu3->addAction(QString::fromUtf8("切换"));
- //将二级菜单插入一级菜单栏中
- menu1->addMenu(menu2);
- menu1->addMenu(menu3);
- //初始化为当前页面菜单栏
- this->menuBar()->addMenu(menu1);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- //鼠标右键点击显示菜单
- void MainWindow::on_MainWindow_customContextMenuRequested(const QPoint &pos)
- {
- menu1->exec(mapToGlobal(pos)); // 在鼠标点击位置显示菜单
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |