Qt实现右键菜单栏显示

news/2024/12/5 0:10:24/
  1. 用到头文件
    qmenu.h qevent.h qlabel.h
  2. 代码
	#pragma once
// QtTestMenu2.h
#include <QtWidgets/QWidget>
#include "ui_QtTestMenu2.h"
#include "qmenu.h"
#include "qevent.h"
#include "qlabel.h"class QtTestMenu2 : public QWidget
{Q_OBJECTpublic:QtTestMenu2(QWidget *parent = nullptr);~QtTestMenu2();virtual void mousePressEvent(QMouseEvent*);
private:void createMenu();
private slots:void slotMenuClicked(QAction*);
private:Ui::QtTestMenu2Class ui;QMenu* m_pMenu;QAction* m_pActionAdd;QAction* m_pActionDel;QAction* m_pActionEdit;QMenu* m_pMenuTest;QAction* m_pActionTest1;QAction* m_pActionTest2;QLabel* mLab;
};QtTestMenu2.cpp#include "QtTestMenu2.h"QtTestMenu2::QtTestMenu2(QWidget *parent): QWidget(parent), mLab(new QLabel(this))
{ui.setupUi(this);mLab->setMinimumSize(QSize(this->width() / 2, this->height() / 2));createMenu();
}QtTestMenu2::~QtTestMenu2()
{}void QtTestMenu2::mousePressEvent(QMouseEvent* e)
{if (e->button() == Qt::RightButton) {m_pMenu->exec(QCursor::pos());}
}void QtTestMenu2::createMenu()
{m_pMenu = new QMenu(this);m_pActionAdd = m_pMenu->addAction(tr("Add"));m_pActionDel = m_pMenu->addAction(tr("Del"));m_pActionEdit = m_pMenu->addAction(tr("Edit"));m_pMenu->addSeparator();QIcon icon(QPixmap("f://test.jpg"));m_pMenu->addMenu(icon,"test QIcon");m_pMenuTest = new QMenu(this);m_pMenuTest->setTitle(tr("Test"));m_pActionTest1 = m_pMenuTest->addAction(tr("Test1"));m_pActionTest2 = m_pMenuTest->addAction(tr("Test2"));m_pMenu->addMenu(m_pMenuTest);connect(m_pMenu, &QMenu::triggered, this, &QtTestMenu2::slotMenuClicked);
}void QtTestMenu2::slotMenuClicked(QAction* ac) 
{if (ac == m_pActionAdd) {this->mLab->setText("Add");} else if (ac == m_pActionDel) {this->mLab->setText("Del");} else if (ac == m_pActionEdit) {this->mLab->setText("Edit");} else if (ac == m_pActionTest2) {this->mLab->setText("Test2");} else if (ac == m_pActionTest1) {this->mLab->setText("Test1");} 
}
// 
  1. 显示效果
    在这里插入图片描述

  2. 代码结构说明
    4.1 重写 mousePressEvent 当鼠标右键按下将菜单栏显示到鼠标点击位置
    4.2 点击菜单栏的项目触发 triggered(QAction*) 信号, 我们在槽函数中对信号进行反馈;
    4.3 初始化就添加菜单栏和选项


http://www.ppmy.cn/news/865743.html

相关文章

win10安装一键ghost,重启仍然直接进入win10的解决办法

之前安装了太多的软件&#xff0c;有些不知道是什么原因&#xff0c;已经无法卸载了&#xff0c;比如说vs2013社区版。 所以本着不折腾会死的精神&#xff0c;加上最近公司相对事情不那么紧张&#xff0c;干脆重装系统好了。 重装系统当然首选ghost版本&#xff0c;先下载好镜…

联想ghost重装系统_联想一键ghost重装系统步骤

联想电脑是比较多人使用的品牌,那么联想电脑系统出问题时想一键重装系统该怎么办呢?在众多的重装系统方法里,一键ghost就是一种很常用的重装系统工具。下面以win7为例,给大家带来云骑士一键ghost重装的教程。 联想一键ghost重装系统步骤阅读 1、将制作好的云骑士启动U盘插入…

win10+uefi+gpt安装一键GHOST之后无法重启的快速解决方法(无需重装系统无需修复引导)

今天装完常用软件后&#xff0c;准备一键备份一下系统&#xff0c;就从一键GOST官网下载安装了一键GHOST&#xff0c;安装完成之后提示不支持UEFIGPT格式系统&#xff0c;但仍可以使用&#xff0c;就没在意&#xff0c;也没卸载&#xff0c;接着就重启电脑试一试&#xff0c;结…

一键ghost(1key ghost)更改备份路径的方法

一键ghost(1key ghost)更改备份路径的方法 1键ghost软件的windows窗口中&#xff0c;没法修改备份的路径。其默认的路径为最后一个盘&#xff0c;但最后一个盘经常不够使&#xff0c;这样就将备份转到倒数第二个硬盘上。这样就会产生两个备份文件&#xff0c;有些让人不爽。要想…

联想ghost重装系统_一键ghost,详细教您使用一键ghost怎么重装win7系统

讲起这个重装系统的方法跟操作&#xff0c;相信广大的用户听的最多的&#xff0c;用的最多的&#xff0c;看的最多的&#xff0c;就是U盘安装系统&#xff0c;硬盘安装系统以及渐渐退隐江湖的光盘重装系统&#xff0c;这几样了&#xff0c;那么不知道你们有没有听过&#xff0c…

联想ghost重装系统_一键ghost,图文详解使用一键ghost怎么重装win7系统

我们在遇到电脑出现系统崩溃时&#xff0c;可一些有经验的用户都会借助光盘或U盘来重装win7系统&#xff0c;而不知道的用户&#xff0c;总在那里这里找U盘&#xff0c;那里求光盘&#xff0c;这些操作都比较繁琐&#xff0c;为此&#xff0c;我们可以使用一键ghost来重装win7系…

【单片机】MSP430F5529单片机的Flash读写控制,MSP430 flash 读写

文章目录 内存模型程序 内存模型 https://qq742971636.blog.csdn.net/article/details/108892807 单片机的Flash里面的区域不是全都能写的&#xff1a;https://blog.csdn.net/u014470361/article/details/79297601 找一下手册看看MSP430F5529单片机哪些地址区域能写&#xf…

一键Ghost后,如何用DiskGenius恢复硬盘上原来的数据

各种一键Ghost、一键备份还原软件&#xff0c;在国内很流行&#xff0c;确实简化了安装Windows的操作&#xff0c;方便了用户。 如果在用一键Ghost等软件&#xff0c;还原了Windows系统后&#xff0c;发现一些重要的数据没有事先备份&#xff0c;怎么办&#xff1f;本文介绍这…