Vc - Qt - QToolButton

QToolButton 是 Qt 框架中的一个类,是 QPushButton 的子类。它可以显示一个可单击的按钮,并且可以与弹出菜单、图标和文本等进行关联。

QToolButton的一些常见特性和用法包括:

  1. 设置文本:使用 setText() 函数设置按钮上的文本。
  2. 设置图标:使用 setIcon() 函数设置按钮上的图标。可以使用资源文件中的图标,也可以使用本地文件路径或URL。
  3. 设置弹出菜单:使用 setMenu() 函数设置按钮的弹出菜单。可以通过创建 QMenu 对象并将其添加到按钮上。
  4. 设置工具提示:使用 setToolTip() 函数设置按钮的工具提示,鼠标悬停在按钮上时显示的文本。
  5. 设置按钮样式:使用 setToolButtonStyle() 函数设置按钮的图标和文本的位置关系。例如,可以设置为 Qt::ToolButtonTextBesideIconQt::ToolButtonTextUnderIcon
  6. 连接信号和槽:使用信号 clicked() 来捕获按钮的点击事件,并将其与槽函数连接起来。
  7. 设置按钮是否可用:使用 setEnabled() 函数设置按钮是否可用,以便根据需要启用或禁用按钮。

除了上述特性外,还有其他一些函数可用于调整按钮的外观和行为,例如设置按钮的尺寸、设置按钮的样式表等。

QToolButton 提供了一种灵活的方法来创建可自定义的工具按钮,可以在工具栏、菜单栏、对话框等界面元素中使用。可以根据项目的需求自由地使用和定制。

下面是一个QToolButton的示例,展示了常用的一些功能:

#include <QApplication>
#include <QToolButton>
#include <QMessageBox>
#include <QMenu>
#include <QWidget>
#include <QVBoxLayout>int main(int argc, char* argv[])
{QApplication app(argc, argv);QWidget w;w.setFixedSize(600, 400);QVBoxLayout layout;w.setLayout(&layout);QToolButton toolButton;toolButton.setFixedSize(150, 30);layout.addWidget(&toolButton);toolButton.setText("ToolButton");toolButton.setToolTip("This is a tool button");// 设置图标和文本的位置关系toolButton.setToolButtonStyle(Qt::ToolButtonTextBesideIcon);toolButton.setPopupMode(QToolButton::MenuButtonPopup);// 设置图标QIcon icon("./icon.png");toolButton.setIcon(icon);// 设置弹出菜单QMenu* menu = new QMenu(&toolButton);menu->addAction("Action 1");menu->addAction("Action 2");menu->setFixedWidth(toolButton.width());toolButton.setMenu(menu);// 连接点击信号与槽函数QObject::connect(&toolButton, &QToolButton::clicked, [&]() {//QMessageBox::information(nullptr, "Clicked", "ToolButton clicked!");toolButton.showMenu();});// 显示 ToolButtonw.show();return app.exec();
}

上述代码使用QWidget作为主窗口,布局为垂直布局,垂直布局中放入了一个QToolButton的对象。该QToolButton对象设置了如下内容:

  • 设置图标和文本的位置关系
  • 设置图标
  • 设置弹出菜单
  • 设置弹出菜单

运行结果截图:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【JavaEE进阶】SpringBoot 日志

文章目录 一. 日志有什么用?二. 自定义日志打印1. 日志的使用与打印 三. 日志级别1. 日志级别有什么用?2. 日志级别的分类及使用 四. 日志持久化五. 更简单的日志输出---Lombok1. Lombok的使用2. lombok原理解释2.1 Lombok更多注解说明 一. 日志有什么用? 在Java中&#xf…

运维监控学习笔记7

Zabbix的安装&#xff1a; 1、基础环境准备&#xff1a; 安装zabbix的yum源&#xff0c;阿里的yum源提供了zabbix3.0。 rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm 这个文件就是生成了一个zabbix.repo 2、安…

【MongoDB基础】

目录 一、概述 1.概念 2.相关 2.1 实例 2.2 库 2.3 集合 2.4 文档 2.5 主键 3.特性 4&#xff0c;应用场景 二、安装 1.RPM安装 2.启动数据库 三、目录结构 1.rpm -ql mongodb-org-server 2.rpm -ql mongodb-org-shell 3.rpm -ql mongodb-org-tools 四、默…

动手学深度学习-pytorch版本(一):引言 预备知识

参考引用 动手学深度学习利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 0. 环境安装 利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 1. 引言 机器学习&#xff08;machine learning&#xff0c;ML&#xff09;是⼀类强⼤的可以从经…

同步_异步请求和Ajax并利用axios框架简化

目录 同步和异步 原生的Ajax 创建XMLHttpRequest对象 常用方法 常用属性 axios框架 同步和异步 同步请求&#xff1a;发送请求后&#xff0c;会做出回应&#xff0c;回应的内容会覆盖浏览器中的内容&#xff0c;这样会打断其他正常的操作&#xff0c;显得不太友好&#…

Scala函数式编程

概念 函数 一种具有名或匿名的操作。其代码直到被调用时才执行。在函数的定义中&#xff0c;可能有也可能没有引用外部的未绑定变量。 def 函数名([参数名: 参数类型],...) [: 返回值类型] {语句[return] 返回值 }函数声明的关键字是 def[参数名: 参数类型],…&#xff1a;…

python实战-将mysql表结构导出到word文档

背景 将项目中用到的表的结构写入到word文档&#xff0c;格式如下&#xff1a; 解决思路 -- 注意这次最初的思路&#xff0c;操作简单但是重复的操作很多最后选择了python 使用sql将这些字段查出来&#xff0c;然后导出到excel或者excel xml&#xff0c;然后粘贴到word SELEC…

【Quarkus技术系列】「云原生架构体系」在云原生时代下的Java“拯救者”是Quarkus,那云原生是什么呢?

云原生时代下的Java"拯救者" 在云原生时代&#xff0c;其实Java程序是有很大的劣势的&#xff0c;以最流行的spring boot/spring cloud微服务框架为例&#xff0c;启动一个已经优化好&#xff0c;很多bean需要lazy load的application至少需要3-4秒时间&#xff0c;内…

OpenHarmony Meetup 广州站 OpenHarmony正当时—技术开源

招募令 OpenHarmony Meetup 广州站 火热招募中&#xff0c;等待激情四射的开发者&#xff0c;线下参与OpenHarmonyMeetup线下交流 展示前沿技术、探讨未来可能、让你了解更多专属OpenHarmony的魅力 线下参与&#xff0c;先到先得,仅限20个名额&#xff01; 报名截止时间8月23日…

如何在Stream流中分组统计

上面是今天碰到需求,之前就做过类似的分组统计,这个相对来说比较简单,统计的也少,序号和总预约人数这两部分交给前端了,不需要由后端统计,后端统计一下预约日期和检查项目和预约人数就行; Overridepublic List<ItemStatisticsVo> statistics(ItemStatisticsModel itemSta…

观察者模式实战

场景 假设创建订单后需要发短信、发邮件等其它的操作&#xff0c;放在业务逻辑会使代码非常臃肿&#xff0c;可以使用观察者模式优化代码 代码实现 自定义一个事件 发送邮件 发送短信 最后再创建订单的业务逻辑进行监听&#xff0c;创建订单 假设后面还需要做其它的…

windows11下配置vscode中c/c++环境

本文默认已经下载且安装好vscode&#xff0c;主要是解决环境变量配置以及编译task、launch文件的问题。 自己尝试过许多博客&#xff0c;最后还是通过这种方法配置成功了。 Linux(ubuntu 20.04)配置vscode可以直接跳转到配置task、launch文件&#xff0c;不需要下载mingw与配…