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

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.mrgr.cn/news/70444.html

相关文章:

  • CKA认证 | Day2 K8s内部监控与日志
  • css效果
  • 【SQL实验】索引操作(菜单操作和命令操作)
  • 无线图传下的低延迟视频传输播放技术探讨
  • MATLAB的addpath和rmpath函数增加或删除路径
  • 性能优化--CPU微架构
  • @Value 注解(可以将配置文件中的值注入到 Spring 管理的Bean的字段中)
  • 云岚到家 秒杀抢购
  • FastDDS服务发现之PDP的收发
  • 如何防止技术泄密?企业的机密管控必需掌握的十个小窍门,守护数据安全无死角!【科普篇】
  • 产品设计理念:10个案例分享
  • Java异步编程CompletableFuture(串行,并行,批量执行)
  • 无人机动力测试台如何快速外接第三方传感器
  • 使用自定义LLM:RAGAs评估
  • Spring的XML配置:从“啊这...“到“啊,就这...“ --手写Spring第六篇了
  • 香港SEO服务器备份解决方案及注意事项
  • 紫光展锐携手上赞随身Wi-Fi,让5G触手可及
  • 【智谱开放平台-注册/登录安全分析报告】
  • 线代的几何意义(3)——行列式与矩阵的逆
  • 智能检测技术与传感器(热电传感器四个定律)
  • 安装阿里巴巴的Dragonwell(替代JDK)
  • C++的起源与发展
  • 5. 类加载子系统
  • 多模态融合-决策层融合
  • Git - 命令杂谈 - fetch与push
  • 如何在本地文件系统中预览 Vue 项目?