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

Qt应用开发(基础篇)——工具按钮类 QToolButton

一、前言

       QToolButton类继承于QAbstractButton,该部件为命令或选项提供了一个快速访问按钮,通常用于QToolBar中。

        按钮基类 QAbstractButton

        QToolButton是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它提供对特定命令或选项的快速访问,与普通的命令按钮相反,工具按钮通常不显示文本标签,而是显示一个图标。

        QToolButton工具按钮通常是QToolBar在使用addAction()创建新的QAction实例时创建的。也可以以与任何其他小部件相同的方式构造工具按钮,并将它们与布局中的其他小部件一起排列。

QAction *act1 = new QAction("上");
QAction *act2 = new QAction("左");
QAction *act3 = new QAction("下");
QAction *act4 = new QAction("右");QToolButton *btn1 = new QToolButton;
btn1->setArrowType(Qt::UpArrow);
QToolButton *btn2 = new QToolButton;
btn2->setArrowType(Qt::LeftArrow);
QToolButton *btn3 = new QToolButton;
btn3->setArrowType(Qt::DownArrow);
QToolButton *btn4 = new QToolButton;
btn4->setArrowType(Qt::RightArrow);QToolBar *bar = new QToolBar(this);
bar->setFixedWidth(500);
bar->setFixedHeight(50);
bar->addAction(act1);
bar->addAction(act2);
bar->addAction(act3);
bar->addAction(act4);  
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation),"");  
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning),""); 
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical),"");
bar->addAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion),"");
bar->addWidget(btn1);
bar->addWidget(btn2);
bar->addWidget(btn3);
bar->addWidget(btn4);

        QToolButton可以设置icon图标,当按钮的功能不可用时使用禁用的像素图,当按钮自动抬起时,由于鼠标指针悬停在活动像素图上,显示活动像素图。也可以使用arrowType显示箭头图标,参考上文示例。

 二:QToolButton 类

1、arrowType

        该属性用于是否是箭头图标,参考上文示例。

Qt::ArrowType arrowType() const         
void setArrowType(Qt::ArrowType type)  

2、autoRaise

        该属性用于是否自动升高模式。在自动升高模式下,按钮在鼠标指向它时绘制3D帧。当在QToolBar中使用按钮时,该功能会自动打开,也就是说不要在QToolBar使用该按钮之前调用setAutoRaise,否则会被重置回去

bool autoRaise() const            
void setAutoRaise(bool enable)    

        在示例中添加设置toolbutton1的autoRaise为false。

btn1->setAutoRaise(false);

3、popupMode

        该属性表示按钮与弹出菜单的交互方式,默认为QToolButton::DelayedPopup。

QToolButton::ToolButtonPopupMode popupMode() const          
void setPopupMode(QToolButton::ToolButtonPopupMode mode)    
QToolButton::ToolButtonPopupMode描述
QToolButton::DelayedPopup在按住工具按钮一段时间后显示菜单
QToolButton::MenuButtonPopup工具按钮显示一个特殊的箭头,以指示存在菜单。当按下按钮的箭头部分时,将显示菜单。
QToolButton::InstantPopup按下工具按钮,菜单立即显示。在这种模式下,按钮本身的动作不会被触发

4、toolButtonStyle

        该属性用于确定图标和文本的显示策略,默认为Qt::ToolButtonIconOnly。

Qt::ToolButtonStyle toolButtonStyle() const       
void setToolButtonStyle(Qt::ToolButtonStyle style)
Qt::ToolButtonStyle描述
Qt::ToolButtonIconOnly只显示图标
Qt::ToolButtonTextOnly只显示文本
Qt::ToolButtonTextBesideIcon文本在图标旁边
Qt::ToolButtonTextUnderIcon文本在图标下面
Qt::ToolButtonFollowStyle跟随系统

5、公共方法

1)menu

        返回按钮绑定的菜单。

QMenu *menu() const

 2)setMenu

        设置按钮绑定的菜单,菜单弹出策略由popupMode决定。

void setMenu(QMenu *menu)

3)defaultAction

        返回默认的动作Action。

QAction *defaultAction() const

 4)setDefaultAction

        设置一个默认的action,这个动作可能定义了按钮的属性,比如文本、图标、工具提示等。

void setDefaultAction(QAction *action)

6、公共槽函数

  1)showMenu

        显示菜单。如果没有设置菜单,使用这个函数不会有任何反应。在菜单关闭之前,这个函数不会返回。

void showMenu()

7、信号

1)triggered

        这个信号在给定的Action被触发时发出,参考上面的例子,我们定义了很多的Action。

        该操作还可以与用户界面的其他部分相关联,例如菜单项和键盘快捷键。以这种方式共享操作有助于使用户界面更加一致,并且通常可以减少实现的工作量。

void triggered(QAction *action)

相关文章:

Qt应用开发(基础篇)——工具按钮类 QToolButton

一、前言 QToolButton类继承于QAbstractButton,该部件为命令或选项提供了一个快速访问按钮,通常用于QToolBar中。 按钮基类 QAbstractButton QToolButton是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它…...

【数据结构面试题】栈与队列的相互实现

目录 1.队列实现栈 1.1创建栈 1.2判断是否为空 1.3入栈 1.4出栈 1.5获取栈顶元素 1.6完整代码 2. 用栈实现队列 2.1创建队列 2.2判断是否为空 2.3入队列 2.4出队列 2.5获取队头元素 2.6完整代码 1.队列实现栈 用队列实现栈https://leetcode.cn/problems/impleme…...

华为认证和红帽认证哪个比较好考呢

华为认证和红帽认证的考试难度、学习内容、适用范围等方面都有所不同,因此哪个比较好考要视具体情况而定: 考试难度:红帽认证的考试难度较高,需要考生具备较高的技术水平和实践经验;而华为认证则更注重基础知识的考察…...

[Java]_[中级]_[使用okhttp3和HttpClient代理访问外部网络]

场景 Java的http库常用的有HttpClient和Okhttp3, 如果公司有限制网络访问&#xff0c;需要代理才可以访问外网&#xff0c;那么如何使用代理Proxy&#xff1f; <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient<…...

ubuntu 20.04 docker 安装 mysql

要在Ubuntu 20.04上安装Docker并运行MySQL容器&#xff0c;您可以按照以下步骤操作&#xff1a; 1.更新系统包列表&#xff1a; sudo apt update2.安装Docker&#xff1a; sudo apt install docker.io3.启动Docker服务并设置其开机自启动&#xff1a; sudo systemctl start…...

C++在C语言基础上的优化

目录 一、命名空间 1、命名空间的定义 2、命名空间的使用 二、输入&输出 三、缺省参数 1、缺省参数的概念 2、缺省参数的分类 四、函数重载 五、引用 1.引用的概念 2.引用的特性 3、引用和指针的区别 六、内联函数 七、基于范围的for循环 一、命名空间 命名空…...

分享一个python实验室设备预约管理系统 实验室设备维修系统源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

兵者多诡(HCTF2016)

环境:https://github.com/MartinxMax/CTFer_Zero_one 题目简介 解题过程 登录首页 提交png图片上传抓包&#xff0c;可以看到是向upload文件提交数据 在fp参数中尝试伪协议读取home.php文件 http://127.0.0.1:88/HCTF2016-LFI/home.php?fpphp://filter/readconvert.base64…...

【JAVA-Day04】Java关键字和示例:深入了解常用关键字的用法

Java关键字和示例&#xff1a;深入了解常用关键字的用法 摘要Java 关键字、标识符和命名规范一、Java 关键字常用关键字DEMO1. 示例代码使用 if 和 else 关键字&#xff1a;2. 示例代码使用 for 循环&#xff1a;3. 示例代码使用 switch 关键字&#xff1a;4. 示例代码使用 wh…...

Android请求网络报错:not permitted by network security policy

一、错误记录 https的接口请求正常的&#xff0c; 请求http的接口时报错&#xff1a;not permitted by network security policy 二、问题分析 原因&#xff1a; 由于 Android P(版本27以上) 限制了明文流量的网络请求&#xff0c;非加密的流量请求都会被系统禁止掉。如果当…...

python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1

python报错&#xff1a;ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1 问题分析 说明&#xff1a;requests包引入了urllib3&#xff0c;而新版本的urllib3 需要OpenSSL 1.1.1以上版本&#xff0c;否则报错&#xff1a; ImportError: urllib3 v2.0 only supports Ope…...

如何使用adb command来设置cpu频率和核数

透過ADB Shell設定CPU開核與freq的command與用法如下: # Disable PPM echo 0 > /proc/ppm/enabled # Enable PPM (Default) echo 1 > /proc/ppm/enabled echo 0 > /proc/ppm/enabled Fixed # Core for each cluster echo X Y > /proc/ppm/policy/ut_fix_core_num …...

236. 二叉树的最近公共祖先

236. 二叉树的最近公共祖先 题目-中等难度示例1. dfs 题目-中等难度 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p…...

Git常见问题:git pull 和 git pull --rebase二者区别

git pull 和 git pull --rebase 都是从远程仓库获取最新的更改并将其合并到本地分支。但它们之间的区别在于合并方式。以下是它们之间的主要区别&#xff1a; git pull&#xff1a; 当你执行 git pull 时&#xff0c;Git 会执行以下两个操作&#xff1a; git fetch&#xff…...

关于HarmonyOS元服务的主题演讲与合作签约

一、感言 坚持中&#xff0c;总会有很多意想不到的收获。 前几次参与HDC时更多的是观众、开发者、专家的身份&#xff0c;以参观、学习、交流为主。 通过几年的努力&#xff0c;和HarmonyOS功能成长&#xff0c;在2023年的HDC大会中&#xff0c;有了我的演讲&#xff0c;并带领…...

cache 学习

好文章&#xff1a; Cache的基本原理 - 知乎...

SSM - Springboot - MyBatis-Plus 全栈体系(六)

第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.1 实验一&#xff1a;Bean 注解标记和扫描 (IoC) 3.1.1 注解理解 和 XML 配置文件一样&#xff0c;注解本身并不能执行&#xff0c;注解本身仅仅只是做一个标记&#xff0c;具体的功能是框…...

【Flutter】引入网络图片时,提示:Failed host lookup: ‘[图片host]‘

在使用 NetworkImage 组件加载外部图片时&#xff0c;提示 Failed host lookup: [图片host] 错误。 排查方向 1、清理缓存 解决方案&#xff1a; 尝试flutter clean清空缓存后重新安装依赖flutter pub get重新构建项目flutter create . 走完上述三个步骤后&#xff0c;再次…...

Python基础教程:索引和切片

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 索引&#xff08;下标&#xff09; 索引又称下标&#xff0c;用来表示可迭代对象中的某个元素的位置。 用正整数表示的索引值&#xff0c;从左向右定位&#xff0c;从 0 开始计数&#xff0c;如 0&#xff0c;1&#…...

JVM基础面试题

JDK、JRE、JVM的关系 JVM Java虚拟机&#xff0c;它只识别.class类型文件&#xff0c;它能将class文件中的字节码指令进行识别并调用操作系统向上的API完成动作。 JRE Java运行时环境。它主要包含两部分&#xff1a;Jvm的标准实现和Java的一些基本类库。相对于JVM来说,JRE多出来…...

蓝桥杯官网填空题(平方末尾)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 能够表示为某个整数的平方的数字称为“平方数” 虽然无法立即说出某个数是平方数&#xff0c;但经常可以断定某个数不是平方数。 因为平方数的末位只可能是&#x…...

深入探究数据结构与算法:构建强大编程基础

文章目录 1. 为什么学习数据结构与算法&#xff1f;1.1 提高编程技能1.2 解决复杂问题1.3 面试准备1.4 提高代码效率 2. 学习资源2.1 经典教材2.2 在线学习平台2.3 学习编程社区 3. 数据结构与算法的实际应用3.1 排序算法3.2 图算法3.3 字符串匹配算法 4. 结论 &#x1f389;欢…...

Android 自定义View之圆形进度条

很多场景下都用到这种进度条&#xff0c;有的还带动画效果&#xff0c; 今天我也来写一个。 写之前先拆解下它的组成&#xff1a; 底层圆形上层弧形中间文字 那我们要做的就是&#xff1a; 绘制底层圆形&#xff1b;在同位置绘制上层弧形&#xff0c;但颜色不同&#xff…...

力扣(LeetCode)算法_C++——字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”…...

【LeetCode-中等题】59. 螺旋矩阵 II

文章目录 题目方法一&#xff1a;二维数组缩圈填数字方法二&#xff1a; 题目 方法一&#xff1a;二维数组缩圈填数字 定义四个边界条件&#xff0c;每转一圈&#xff0c;把数值填进去&#xff0c;然后缩小一圈&#xff0c;直到不满足条件位置 结束循环条件可以是&#xff1a; …...

错误: 找不到或无法加载主类 Main

在用git回退到上个版本后发现&#xff0c;无法运行项目并提示 错误: 找不到或无法加载主类 Main 可以看到Main前面的图标也是号。 查了半天没有解决&#xff0c;问了个大佬&#xff0c;大佬一下就解决掉了&#xff0c;本文记录下解决过程。 错误原因是编辑器无法找到代码位置&…...

【云原生】Kubeadmin安装k8s集群

目录 前言&#xff1a; 一 环境部署 1.1 服务器部署功能 1.2 环境准备&#xff08;所有节点&#xff09; 二 安装docker&#xff08;所有节点&#xff09; 三 所有节点安装kubeadm&#xff0c;kubelet和kubectl 3.1 定义kubernetes源 3.2 开机自启kubelet 四 部署K8S集…...

Java:Springboot和React中枚举值(数据字典)的使用

目录 1、开发中的需求2、实现效果3、后端代码4、前端代码5、接口数据6、完整代码7、参考文章 1、开发中的需求 开发和使用过程中&#xff0c;通常会涉及四个角色&#xff1a;数据库管理员、后端开发人员、前端开发人员、浏览者 数据库使用int类型的数值进行存储&#xff08;e…...

git撤回 不小心 commit 进去的文件

我时候 我们可能讲一下不想提交的文件 不小心commit了进去 我们可以通过 git reset HEAD~来撤回刚才的添加记录...

qt之movetothread理解

基础概念 qt的下线程qthread&#xff0c;每个线程都有自己的事件循环exec。对象的线程上下文&#xff0c;每个对象都有自己的线程上下文&#xff0c;怎么理解呢&#xff0c;就是该对象在哪个线程创建&#xff0c;其线程上下文就是谁。每个qobject对象在创建时都有包含线程成员…...

这几年做哪个网站致富/互联网平台推广是什么意思

//学习继承Descriptionauthor huoyudate 2020年2月10日下午9:34:01param args一、继承性的好处减少了代码的冗余&#xff0c;提高了代码的复用性便于功能的扩展为之后多态的使用提供了前提二、继承的格式 class A extends B{}A:子类、派生类 subclassB&#xff1a;父类、起类、…...

怎么做自己的淘宝网站/站长工具ip地址

本篇文章小编给大家分享一下Java虚拟机内存溢出与内存泄漏代码原理解析&#xff0c;文章代码介绍的很详细&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家供大家参考&#xff0c;有需要的小伙伴们可以来看看。一、基本概念内存溢出&#xff1a;简单地说内存溢出就是指…...

wordpress安卓版怎么用/网站关键词优化网站推广

http://jingyan.baidu.com/article/ac6a9a5e43a62e2b653eac83.html 转载于:https://www.cnblogs.com/saolv/p/7230202.html...

百度网站怎么做视频播放器/首页图片点击率如何提高

1、Viasfora &#xff08;关键字跟括号其他的高亮清晰分类&#xff09; 2.ClaudiaIDE &#xff08;VS代码背景替换也可以换自己想要的图片&#xff09; 3.VSCommands for Visual Studio 2013 代码显示增强&#xff1a;它可以在尾部显示方法或过程名字 4.Indent Guides &#x…...

wordpress插件 二次开放/廊坊网络推广优化公司

1. 综合练习目标 2. 综合练习需求 3.模块划分 1. 综合练习目标 <1>复习 Java 基本语法 <2>熟悉掌握Java开发常用API <3>尝试建立面向对象思想 2. 综合练习需求 <1>接收用户的命令行输入 <2>以文件为基础完成数据的增删改查操作 3.模块划分 UI模块…...

网上北京网站制作公司/百度推广seo是什么意思

想成为一名架构师,但是架构师对应的技能&#xff0c;我应该掌握哪些啊&#xff1f;以及掌握的程度是什么样的&#xff1f;如何成为一名真正的实战性架构师&#xff1f; 我简要分为以下7点来谈谈&#xff0c;从技能的角度抛砖引玉&#xff0c;希望你对你架构师之路有一定的参考。…...