QT菜单之快捷菜单设计

快捷菜单又称为上下文菜单,通常在用鼠标右击的时候弹出。创建快捷菜单的方法和创建菜单栏菜单类似。

效果图:

一、将MainWindow类对象的ContextMenuPolicy属性设置为customContextMenu。

打开mainWindow.ui,在属性视图上找到ContextMenuPolicy,并选择CustomContextMenu。

二、创建菜单栏对象

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

cpp 复制代码
#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)); // 在鼠标点击位置显示菜单
}
相关推荐
2401_873479405 小时前
如何利用IP查询定位识别电商刷单?4个关键指标+工具配置方案
开发语言·tcp/ip·php
我爱cope5 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
菜鸟学Python5 小时前
Python生态在悄悄改变:FastAPI全面反超,Django和Flask还行吗?
开发语言·python·django·flask·fastapi
浪浪小洋6 小时前
c++ qt课设定制
开发语言·c++
charlie1145141916 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构
故事和你916 小时前
洛谷-数据结构1-4-图的基本应用1
开发语言·数据结构·算法·深度优先·动态规划·图论
程序猿编码7 小时前
给你的网络流量穿件“隐形衣“:手把手教你用对称加密打造透明安全隧道
linux·开发语言·网络·安全·linux内核
aq55356008 小时前
编程语言三巨头:汇编、C++与PHP大比拼
java·开发语言
小小码农Come on8 小时前
WorkerScript处理qml多线程处理异步数据
qt
aq55356008 小时前
PHP vs Python:30秒看懂核心区别
开发语言·python·php