首页 > 其他分享 >QT简易右键菜单示例

QT简易右键菜单示例

时间:2024-09-10 11:25:06浏览次数:12  
标签:Widget QT 示例 Menu void QAction 右键 new include

widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QMenu>
class Widget : public QWidget
{
Q_OBJECT
public:
  Widget(QWidget *parent = nullptr);
  ~Widget();
private:
  void contextMenuEvent(QContextMenuEvent *event) override;
  void initMenu(void);
private:
  QMenu *p_Menu;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QMessageBox>
#include <QAction>
Widget::Widget(QWidget *parent): QWidget(parent)
{
  this->setContextMenuPolicy(Qt::DefaultContextMenu);
  initMenu();
}
Widget::~Widget()
{
}
void Widget::initMenu(void)
{
  p_Menu = new QMenu(this);
  QAction *act1 = new QAction("act1");
  QAction *act2 = new QAction("act2");
  QAction *act3 = new QAction("act3");
  QAction *act4 = new QAction("act4");
  p_Menu->addAction(act1);
  p_Menu->addAction(act2);
  p_Menu->addAction(act3);
  p_Menu->addAction(act4);
  connect(act1, &QAction::triggered, this, [=]{QMessageBox::information(this, "title", "ac1");});
  connect(act2, &QAction::triggered, this, [=]{QMessageBox::information(this, "title", "ac2");});
  connect(act3, &QAction::triggered, this, [=]{QMessageBox::information(this, "title", "ac3");});
  connect(act4, &QAction::triggered, this, [=]{QMessageBox::information(this, "title", "ac4");});
}
void Widget::contextMenuEvent(QContextMenuEvent *event)
{
  Q_UNUSED(event);
  p_Menu->exec(QCursor::pos());
}

标签:Widget,QT,示例,Menu,void,QAction,右键,new,include
From: https://www.cnblogs.com/linux-learn/p/18406085

相关文章

  • 7种提示词应用技巧:细节法、分解法、投票法、示例法、角色法、反思法、记忆法
    找到好的prompt是个持续迭代的过程,需要不断调优。善于使用方法,才能事半功倍。细节法:就像你做饭时,要记得放多少盐、多少水一样,细节法就是让我们在解决问题时,注意到每一个小步骤和小事情,这样我们就不会漏掉重要的信息。分解法:这个方法就像把一个大苹果切成小块,这样吃的时候更容易......
  • Qt保存文件
      #include<QApplication>#include<QFileDialog>#include<QFile>#include<QTextStream>#include<QMessageBox>voidsaveFileWithDialog(){QStringfileName=QFileDialog::getSaveFileName(nullptr,"保存文件",&q......
  • 一觉醒来,Qt、C#界面开发的天塌了?
    再算上VC、PyQt,之前说“人生苦短,快用python”,现在要说人生苦短,快跳出泥潭!上位机、客户端界面传统开发太重,也不够美。传统开发中,还算不错的毕竟大部分场景,界面并不是核心。大量时间精力投入在交互、美观、还有各种界面类“面向对象的封装”上,实在不划算。有指针调用,搞不好点下界......
  • qt5.15.2+opencv4.10+VS2019_64 均值滤波,高斯滤波算法详细分析
    目录 一.加载图像二.灰度图像三.均值滤波1.均值滤波均值滤波算法(MeanFiltering):    参数含义:    一句话总结:均值滤波特点:应用场景:缺点:2.高斯滤波高斯滤波算法(GaussianBlur):        高斯滤波计算过程:    参数含义:    ......
  • 【Qt】解决设置QPlainTextEdit控件的Tab为4个空格
    前言PyQt5是一个用于创建跨平台桌面应用程序的Python绑定集合,它提供了对Qt应用程序框架的访问。用于开发具有图形用户界面(GUI)的应用程序,以及非GUI程序。PyQt5使得Python开发者可以使用Qt的丰富功能来构建应用程序。QPlainTextEdit是Qt框架中的一个纯文本编辑器......
  • 【Qt】信号和槽
    目录......
  • Qt/C++ 音视频开发: 使用 mpv 进行录像存储
    Qt/C++音视频开发:使用mpv进行录像存储介绍在现代应用中,音视频处理与存储是非常常见的需求。mpv是一个开源的视频播放器,具有强大的功能,可以通过其API进行定制化开发。本文将详细介绍如何使用Qt/C++和mpv实现录像存储功能。应用使用场景视频监控系统:实时采集......
  • 在 Android 应用中使用 VideoView 播放视频的示例
    这段代码片段是在Android应用中使用VideoView播放视频的示例。下面是对代码的详细解析:代码解析findViewById<VideoView>(R.id.vv).apply{setVideoURI("${baseURL}VideoSrc/${o.getString("Src")}".toUri())start()}查找​VideoView​控件:findViewById<Vi......
  • 值得细细品味的7个内容示例
    作为一名内容营销人员,你经常被要求付出更多来提升品牌形象。但在美国的感恩节,你可以要求更多——火鸡、填料和蔓越莓酱。与家人和朋友分享一餐或只是放松和恢复创造力的精力,是值得感恩的礼物。为此,我收集了一些优秀的内容营销案例,它们捕捉到了这个节日的本质。其中一些已经在......
  • 计算机毕业设计python企业人事员工考勤管理系统 8bqti
    目录技术栈和环境说明具体实现截图系统设计技术路线解决的思路python-flask核心代码部分展示python-django核心代码部分展示django项目结构讲解研究方法研究目的可行性分析论证源码获取技术栈和环境说明本系统以Python开发语言开发,MySQL为后台数据库,采用DJANGO/flas......