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

    // 显示 ToolButton
    w.show();

    return app.exec();
}

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

React源码解析18(4)------ completeWork的工作流程【mount】

摘要 经过上一章&#xff0c;我们得到的FilberNode已经具有了child和return属性。一颗Filber树的结构已经展现出来了。 那我们最终是想在页面渲染真实的DOM。所以我们现在要在completeWork里&#xff0c;构建出一颗离屏的DOM树。 之前在说FilberNode的属性时&#xff0c;我们…

以商业大数据技术助力数据合规流通体系建立,合合信息参编《数据经纪从业人员评价规范》团标

经国务院批准&#xff0c;由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室、中国科学技术协会共同主办的2023 全球数字经济大会于近期隆重召开。由数交数据经纪&#xff08;深圳&#xff09;有限公司为主要发起单位&#xff0c;合合信息…

Kubernetes Service 工作原理

本文介绍了 Kubernetes Service 的概念、原理和具体使用。 作者&#xff1a;沈亚军 爱可生研发团队成员&#xff0c;负责公司 DMP 产品的后端开发&#xff0c;爱好太广&#xff0c;三天三夜都说不完&#xff0c;低调低调… 本文来源&#xff1a;原创投稿 爱可生开源社区出品&am…

机器视觉项目流程和学习方法

机器视觉项目流程&#xff1a; 00001. 需求分析和方案建立 00002. 算法流程规划和业务逻辑设计 00003. 模块化编程和集成化实现 00004. 调试和优化&#xff0c;交付客户及文档 学习机器视觉的方法&#xff1a; 00001. 实战学习&#xff0c;结合项目经验教训 00002. 学习…

IDEA项目实践——Spring框架简介,以及IOC注解

系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 文章目…

(贪心) 剑指 Offer 14- I. 剪绳子 ——【Leetcode每日一题】

❓剑指 Offer 14- I. 剪绳子 难度&#xff1a;中等 给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n > 1 并且 m > 1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m…

【问题记录】antd icons报rev属性缺失错误

闲来无事将项目中的antd从v4升级到了v5&#xff0c;之前正常的页面中如有图标&#xff0c;如<PlusOutlined />&#xff0c;总是报以下错误&#xff1a; TS2741: Property rev is missing in type {} but required in type Pick<AntdIconProps, "name" …

mac-右键-用VSCode打开

1.点击访达&#xff0c;搜索自动操作 2.选择快速操作 3.执行shell脚本 替换代码如下&#xff1a; for f in "$" doopen -a "Visual Studio Code" "$f" donecommand s保存会出现一个弹框&#xff0c;保存为“用VSCode打开” 5.使用

畜牧虚拟仿真 | 鱼授精过程VR模拟演练系统

随着科技的发展&#xff0c;虚拟现实(VR)技术逐渐渗透到各个领域&#xff0c;为人们提供了更加真实、直观的体验。在动物养殖教育领域&#xff0c;鱼授精过程VR模拟演练系统正成为一种新的教学手段&#xff0c;它能够帮助人们更好地理解和掌握鱼授精的操作技巧&#xff0c;从而…

Flask 框架集成Bootstrap

前面学习了 Flask 框架的基本用法&#xff0c;以及模板引擎 Jinja2&#xff0c;按理说可以开始自己的 Web 之旅了&#xff0c;不过在启程之前&#xff0c;还有个重要的武器需要了解一下&#xff0c;就是著名的 Bootstrap 框架和 Flask 的结合&#xff0c;这将大大提高开发 Web …

【C++常见八股1】内存布局 | 参数压栈 | 构造析构调用 | 空类大小

内存布局 .text 代码段&#xff1a;存放二进制代码、字符串常量.data 段&#xff1a;存放已初始化全局变量、静态变量、常量.bss 段&#xff1a;未初始化全局变量&#xff0c;未初始化静态变量heap 堆区&#xff1a;new/malloc 手动分配的内存&#xff0c;需要手动释放stack 栈…

零代码编程:用ChatGPT给汉字自动批量加上拼音

小学生学拼音的过程中&#xff0c;通常需要一个将任意汉字自动批量转换为拼音的小应用。 在ChatGPT中输入如下提示词&#xff1a; 写一段Python程序&#xff0c;使用pypinyin库实现汉字加上拼音的效果。具体步骤如下&#xff1a; 打开F盘的文件&#xff1a;拼音学习.xlsx&…

橡胶履带行业分析报告2023-2029

橡胶履带行业分析报告&#xff0c;2022年全球橡胶履带市场规模达到了19.2亿美元 橡胶履带是用橡胶和骨架材料制成的履带&#xff0c;它被广泛用于工程机械、农用机械和军用装备。橡胶履带行业产业链主要原材料包括橡胶、芯金、炭黑、钢丝、各类橡胶化学助剂等&#xff0c;上游…

Qt应用开发(基础篇)——工具箱 QToolBox

一、前言 QToolBox类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt常用的基础工具部件。 框架类QFrame介绍 QToolBox工具箱类提供了一列选项卡窗口&#xff0c;当前项显示在当前选项卡下面&#xff0c;适用于分类浏览、内容展示、操作指引这一类的使用场景。 二…

前段汇总之JS实现数据双向绑定

参考vue的关键字&#xff1a;v-model绑定值&#xff0c;{{}}&#xff0c;显示值 目录 简单实现双向绑定 使用Proxy优化双向绑定 动态更新值 简单实现双向绑定 新建html5模板&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta char…

小程序的api使用 以及一些weui组件实列获取头像 扫码等

今日目标 响应式单位rpx小程序的生命周期 【重点】20%小程序框架 weui 【重点】 50%内置API 【重点】30%综合练习 1. 响应式rpx 1.1 rpx单位 rpx是微信小程序提出的一个尺寸单位&#xff0c;将整个手机屏幕宽度分为750份&#xff0c;1rpx 就是 1/750&#xff0c;避免不同手…

方案展示 | RK3588开发板Android12双摄方案

iTOP-RK3588开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 ​RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY&#xff0c;四路同时输入&#…

爬虫018_urllib库_cookie反爬_post请求百度翻译获取百分翻译内容_以及详细翻译内容---python工作笔记037

然后我们来看如何用urllib发送post请求,这里我们 用百度翻译为例 我们翻译一个spider,然后我们看请求,可以看到有很多 找到sug这个 可以看到这里的form data,就是post请求体中的内容 然后我们点击preview其实就是 返回的实际内容 然后请求方式用的post 然后我们把上面的信息…

Java 常用编辑器 IntelliJ IDEA

文章目录 IDEA 概述IDEA 下载和安装IDEA 中的第一个代码IDEA 的项目和模块操作&#xff08;一&#xff09;类的操作&#xff08;二&#xff09;模块的操作&#xff08;三&#xff09;项目的操作 IDEA 概述 IntelliJ IDEA是一款由JetBrains开发的集成开发环境&#xff08;IDE&am…

东南亚海外跨境物流管理,移动支付、数据处理程序开发

境外虚拟物流跨境支付平台快速搭建、集成后台采集功能的步骤如下&#xff1a; 一、项目规划与需求分析 在开始搭建境外虚拟物流跨境支付平台之前&#xff0c;需要进行详细的规划和分析。这包括确定项目的目标、了解客户需求、分析市场环境、确定系统架构和技术选型等。通过深…