Qt右键菜单

先创建菜单指针:

cpp 复制代码
#include <QMenu>
QMenu* pMenu = nullptr;
pMenu = new QMenu(this);

设置菜单策略:

cpp 复制代码
this->setContextMenuPolicy(Qt::DefaultContextMenu);

创建动作并将动作添加进菜单,通过槽函数设置应该进行的相关动作:

cpp 复制代码
QAction* pA1 = new QAction(u8"动作一");
	pMenu->addAction(pA1);
	QAction* pA2 = new QAction(u8"动作二");
	pMenu->addAction(pA2);
	QAction* pA3 = new QAction(u8"动作三");
	pMenu->addAction(pA3);
	QAction* pA4 = new QAction(u8"动作四");
	pMenu->addAction(pA4);
	connect(pA1, &QAction::triggered, [=] {
		QMessageBox::information(this, u8"标题",u8"动作一");
	});
	connect(pA2, &QAction::triggered, [=] {
		QMessageBox::information(this, u8"标题", u8"动作二");
	});
	connect(pA3, &QAction::triggered, [=] {
		QMessageBox::information(this, u8"标题", u8"动作三");
	});
	connect(pA4, &QAction::triggered, [=] {
		QMessageBox::information(this, u8"标题", u8"动作四");
	});

重载contextMenuEvent方法:

cpp 复制代码
void contextMenuEvent(QContextMenuEvent* event) override;
void QtWidgetsApplication2::contextMenuEvent(QContextMenuEvent* event)
{
	pMenu->exec(QCursor::pos());
}
相关推荐
zcfeng5303 分钟前
PHP升级
开发语言·php
m0_748252385 分钟前
Ruby 模块(Module)的基本概念
开发语言·python·ruby
羊小猪~~8 分钟前
【QT】-- QT基础类
开发语言·c++·后端·stm32·单片机·qt
木卫二号Coding19 分钟前
Python-文件拷贝+文件重命名+shutil+记录
开发语言·python
bubiyoushang88837 分钟前
基于Q-learning的路径规划MATLAB仿真程序实现
开发语言·matlab
FAFU_kyp1 小时前
Rust 结构体(struct)
开发语言·后端·rust
努力写代码的熊大1 小时前
深入探索C++关联容器:Set、Map、Multiset与Multimap的终极指南及底层实现剖析
开发语言·c++
J_liaty1 小时前
Java工程师的JVM入门教程:从零理解Java虚拟机
java·开发语言·jvm
kklovecode1 小时前
C语言之头文件,宏和条件编译
c语言·开发语言·算法
txinyu的博客1 小时前
Linux 内存管理
linux·运维·开发语言·c++