当前位置: 首页 > news >正文

Qt实现右键菜单

一、实现方法

QWidget提供了虚函数:

virtual void contextMenuEvent(QContextMenuEvent*event);

覆写该函数,即可。

二、Example

创建一个基本的mainwindow项目,
头文件:

class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();//重实现void contextMenuEvent(QContextMenuEvent* event) override;
public slots:void hello_world();
private:Ui::MainWindow *ui;
};

.cpp文件:

void MainWindow::contextMenuEvent(QContextMenuEvent*event)
{QMenu *menu = new QMenu(this);auto action_del = new QAction("del",this);auto action_copy = new QAction("copy",this);auto action_export = new QAction("export",this);connect(action_del,&QAction::triggered,this, &MainWindow::hello_world);menu->addAction(action_del);menu->exec(this->cursor().pos());
}

三、效果

在界面上右键会弹出菜单,点击按钮触发槽函数hello_world();
这里我只添加了一个del的按钮。

QAction构造函数中可以提供图标,实现更好看的菜单。

在这里插入图片描述

http://www.lryc.cn/news/250614.html

相关文章:

  • MySQL基础篇一
  • 深入了解Java8新特性-日期时间API:OffsetDateTime类
  • 企业微信http协议接口开发,发送位置消息
  • CSS——基础选择器、文字控制属性
  • 08-中介者模式-C语言实现
  • 【开源】基于JAVA的医院门诊预约挂号系统
  • NodeJs(一):初识nodejs、模块化、CommonJS、ESModule等
  • hive 命令记录(随时更新)
  • java实战(五):理解多线程与多线程实现冒泡排序及可视化
  • mysql-binlog,redolog 和 undolog区别
  • Redis SDS 源码
  • 肖sir__mysql之单表练习题2__(2)
  • nuxt、vue实现PDF和视频文件的上传、下载、预览
  • c++ 写成.h .cpp main.cpp 多文件形式
  • 组合总和(回溯)
  • 【代码】微电网两阶段鲁棒优化经济调度方法(完美复现)matlab-yalmip-cplex/gurobi
  • 关于无线测温系统在海上石油平台的应用探讨-安科瑞 蒋静
  • CSS 滚动捕获 scroll-padding
  • asp.net core webpi 结合jwt实现登录鉴权
  • 【香橙派】实战记录2——烧录安卓镜像及基本功能
  • 【spring(六)】WebSocket网络传输协议
  • MidJourney笔记(6)-Niji模式
  • Linux命令(139)之ab
  • 笔记----单纯剖分----1
  • mybatis源码(五)springboot pagehelper实现查询分页
  • 【BUG】SpringBoot项目Long类型数据返回前端精度丢失问题
  • UI自动化Selenium find_elements和find_element的区别
  • 【Android】Window和WindowManager
  • 如何解决 Python ModuleNotFoundError 错误
  • Day62.算法训练