qt QWidgetAction详解

1、概述

QWidgetAction是Qt框架中的一个类,它继承自QAction类。QWidgetAction允许开发者将自定义的小部件(widget)插入到基于QAction的容器中,如工具栏或菜单项中。这使得QWidgetAction成为创建复杂用户界面和自定义菜单项的强大工具。

2、重要方法

QWidgetAction类提供了一系列方法用于管理和操作自定义的小部件,以下是其中一些重要的方法:

  • QWidget* defaultWidget() const:返回当前设置的默认小部件。
  • void releaseWidget(QWidget* widget):释放之前设置的小部件,使其不再与QWidgetAction关联。
  • QWidget* requestWidget(QWidget* parent):请求为QWidgetAction创建一个新的小部件,并返回这个小部件的指针。通常,这个方法在将QWidgetAction添加到工具栏时会被调用。
  • void setDefaultWidget(QWidget* widget):设置QWidgetAction的默认小部件。这个方法允许开发者将自定义的小部件插入到QWidgetAction中。

此外,QWidgetAction还继承了QAction类的所有方法,包括设置文本、图标、快捷键、提示信息等。

3、重要信号

QWidgetAction本身并没有定义特定的信号,但它继承了QAction类的信号。这些信号可以在用户与QAction关联的小部件交互时发出,例如:

  • void triggered(bool checked = false):当用户触发QAction时发出此信号。如果QAction是可勾选的,则checked参数将指示QAction的勾选状态。
  • void hovered():当用户将鼠标悬停在QAction上时发出此信号。
#include <QApplication>
#include <QMenu>
#include <QWidgetAction>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个菜单QMenu *menu = new QMenu;// 创建一个QWidgetActionQWidgetAction *widgetAction = new QWidgetAction(menu);// 创建一个自定义的小部件QWidget *customWidget = new QWidget;QVBoxLayout *layout = new QVBoxLayout(customWidget);layout->addWidget(new QPushButton("自定义按钮1"));layout->addWidget(new QPushButton("自定义按钮2"));customWidget->setLayout(layout);// 将自定义的小部件设置为QWidgetAction的默认小部件widgetAction->setDefaultWidget(customWidget);// 将QWidgetAction添加到菜单中menu->addAction(widgetAction);menu->exec(QCursor::pos());return 0;
}

觉得有帮助的话,打赏一下呗。。

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文了解什么是腾讯云开发

一文了解什么是腾讯云开发 关于云开发的猜想腾讯云开发腾讯云开发的优势无服务跨平台轻松托管节约成本 快速上手云开发环境快速搭建管理后台 云开发体验 关于云开发的猜想 说到云开发&#xff0c;作为开发者的大家是否大概就有了想法。比如说过去的开发工作都是在自己本地电脑…

2.操作系统常问面试题1

2.1 Linux 中查看进程运行状态的指令、查看内存使用情况的指令、tar解压文件的参数是什么 1、查看进程运行状态的指令&#xff1a; ps aux 列出所有进程的详细信息。 ps aux | grep PID &#xff0c;查看具体某PID进程状态。 在 Linux 中&#xff0c;可以使用以下指令来查看进…

LED和QLED的区别

文章目录 1. 基础背光技术2. 量子点技术的引入3. 色彩表现4. 亮度和对比度5. 能效6. 寿命7. 价格总结 LED和 QLED都是基于液晶显示&#xff08;LCD&#xff09;技术的电视类型&#xff0c;但它们在显示技术、色彩表现和亮度方面有一些关键区别。以下是两者的详细区别&#xff…

图书管理系统(Java实现)

在写之前需要了解图书管理系统是怎样的&#xff0c;需要自己设定规则&#xff08;我这个是借鉴他人的规则&#xff09;。 首先需要创建书籍&#xff08;书名、作者、价格、类型、是否被借阅等属性&#xff09;&#xff0c;需要可以得到和改变各种属性&#xff1b;创建后需要书…

深入理解信噪比:概念、计算及应用

一、信噪比的基本概念 1.1 什么是信噪比 信噪比&#xff0c;简称SNR&#xff0c;是指信号功率与噪声功率的比值。它用于衡量有用信号与噪声的相对大小&#xff0c;反映了信号在噪声背景下的“清晰度”或“纯净度”。信噪比越高&#xff0c;表示信号在噪声的干扰下更加清晰&am…

多路转接之poll

多路转接之poll 一、关于poll认识poll基于poll实现的服务器的原理 二、基于poll实现的服务器main.cpppollServer.hppsock.hppLog.hpppublic.hpp 一、关于poll 认识poll #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd {int …

15分钟学 Go 第 41 天:中间件的使用

第41天&#xff1a;中间件的使用 目标&#xff1a;学习如何在Go语言的Web服务中使用中间件 中间件&#xff08;Middleware&#xff09;是Web开发中的一种常见设计模式&#xff0c;通常用于处理请求和响应过程中的一些共通功能。比如&#xff1a;日志记录、认证授权、请求处理…

# filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝, 失败,无法连接服务器”解决方案

filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝&#xff0c; 失败&#xff0c;无法连接服务器”解决方案 一、问题描述&#xff1a; 当我们用filezilla客户端 连接 虚拟机ubuntu系统时&#xff0c;报错“尝试连接 ECONNREFUSED - 连接被服务…

TCP编程API

这里写自定义目录标题 主要的 TCP 编程 API 函数1.1 socket()1.2 bind()1.3 listen()1.4 accept()1.5 connect()1.6 send()1.7 recv()1.8 close() 主要的 TCP 编程 API 函数 1.1 socket() 创建一个新的套接字。 int socket(int domain, int type, int protocol);domain&…

STM32WB55RG开发(1)----开发板测试

STM32WB55RG开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载产品特性参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32WB55 & SENSOR是一款基于STM32WB55系列微控制器的评估套件。该套件采用先进的无线通信技术&#xff0c;支…

人工智能、机器学习与深度学习:层层递进的技术解读

引言 在当今科技快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为一个热门话题&#xff0c;几乎渗透到了我们生活的方方面面。从智能手机的语音助手&#xff0c;到自动驾驶汽车&#xff0c;再到医疗诊断中的图像识别&#xff0c;人工智能的应用正在改变我…

【Java学习】电脑基础操作和编程环境配置

CMD 在Windows中用命令行的方式操作计算机。 打开CMD Win R输入CMD按下回车键 Win E 进入我的电脑 常用的CMD命令 盘符名称冒号 说明&#xff1a;盘符切换 举例&#xff1a;E:回车&#xff0c;表示切换到E盘 dir 说明&#xff1a;查看当前路径下的内容 cd目录 说明&a…

学习记录:js算法(八十八):分割回文串

文章目录 分割回文串思路一&#xff1a;回溯法思路二&#xff1a;动态规划方法三&#xff1a;记忆化搜索方法四&#xff1a;迭代法方法五&#xff1a;位运算 分割回文串 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串。返回 s 所有可…

FFmpeg —— 通过AES-CTR方式对视频加密解密(详细介绍通过FFmpeg指令、代码方式进行加密解码,附源码)

背景 这里使用ffmpeg通过AES-CTR加密方式对视频进行加密保存、解密播放。 1、纯指令方式(加密解密) 指令方式:对本地mp4文件加密后另存为mp4: # 使用AES-128-CBC算法对视频文件进行加密 ffmpeg -i xx.mp4 -c:v copy -c:a copy -encryption_scheme cenc-aes-ctr

Mac中禁用系统更新

Mac中禁用系统更新 文章目录 Mac中禁用系统更新1. 修改hosts&#xff0c;屏蔽系统更新检测联网1. 去除系统偏好设置--系统更新已有的小红点标记 1. 修改hosts&#xff0c;屏蔽系统更新检测联网 打开终端&#xff0c;执行命令&#xff1a; sudo vim /etc/hosts127.0.0.1 swdis…

Unity3D UI 双击和长按

Unity3D 实现 UI 元素双击和长按功能。 UI 双击和长按 上一篇文章实现了拖拽接口&#xff0c;这篇文章来实现 UI 的双击和长按。 双击 创建脚本 UIDoubleClick.cs&#xff0c;创建一个 Image&#xff0c;并把脚本挂载到它身上。 在脚本中&#xff0c;继承 IPointerClickHa…

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时&#xff0c;一张表不足以查询到我们想要的数据&#xff0c;更多的时候我们需要联表查询。 联表查询我们一般会使用连接…

LeetCode 热题100之 动态规划1

对于动态规划的问题&#xff0c;解题步骤有以下几部(总结为动态规划五部曲&#xff1a;参考代码随想录动态规划 确定dp数组以及下标的含义&#xff1b;确定递推公式&#xff1b;dp数组如何初始化&#xff1b;确定遍历顺序&#xff1b;举例推导dp数组 下面的解题思路分析都将从…

python可视化将多张图整合到一起(画布)

这周有点事忙着&#xff0c;没时间重温刚结束的Mathurcup数学建模&#xff0c;这两天也是再看了下&#xff0c;论文还是赶紧挺烂的&#xff0c;但比国赛又有进步&#xff08;说起国赛又不得不抱怨了&#xff0c;基本其余省份都发了&#xff0c;但江西......哎&#xff09;。哎&…

MFC图形函数学习07——画扇形函数

绘制扇形函数是MFC中绘图的基本函数&#xff0c;它绘制的仍是由椭圆弧与椭圆中心连线构成的椭圆扇形&#xff0c;特例是由圆弧与圆心连线构成的圆扇形。 一、绘制扇形函数 原型&#xff1a;BOOL Pie(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4); …