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

Qt实现右键菜单

一、实现方法

QWidget提供了虚函数:

virtual void contextMenuEvent(QContextMenuEvent*event);

覆写该函数,即可。

二、Example

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

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    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());
}

注意,是绑定QAction::triggered,绑QAction::trigger是无效的,不要搞混了。

三、效果

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

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

在这里插入图片描述


http://www.kler.cn/a/162030.html

相关文章:

  • Linux kernel 堆溢出利用方法(二)
  • 如何在Puppeteer中实现表单自动填写与提交:问卷调查
  • 修改yolo格式的labels类别、删除yolo格式的labels类别
  • AI写作(二)NLP:开启自然语言处理的奇妙之旅(2/10)
  • git commit 校验
  • 【Qt】Macbook M1下载安装
  • Java研学-Lambda表达式
  • Python函数默认参数设置
  • C语言验证哥德巴赫猜想
  • AttributeError: module ‘importlib_resources‘ has no attribute ‘path‘ 解决方案
  • cpu 300% 爆满 内存占用不高 排查
  • 【AIGC】prompt工程从入门到精通
  • 专业130+总分400+云南大学通信847专业基础综考研经验(原专业课827)
  • 获取拼多多京东淘宝商品数据店铺数据店铺信息最推荐最好用的一种方式就是API接口
  • HTTPS加密协议:保护你的网络安全
  • ArcGIS Pro中怎么设置标注换行
  • yum源不起作用_yum无法安装程序_Linux默认源替换---Linux工作笔记067
  • YOLOv7独家最新改进《全网无重复》感知聚合SERDetect检测头:高效涨点,即插即用|检测头新颖改进
  • type property can‘t be changed 报错问题解决
  • Matlab 点云对称性检测
  • kyuubi整合flink yarn application model
  • Java + Selenium + Appium自动化测试
  • ELK(四)—els基本操作
  • 如何将 MySQL 数据库转换为 SQL Server
  • 基于个微机器人的开发
  • pycharm中debug,py文件