【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

目录

QPushButton

例子:

QRadioButton

例子:

按钮的常见信号函数

单选按钮分组

例子:

QCheckButton

例子:

QToolButton


QWidget的常见属性及其功能对于它的派生类控件都是有效的(也就是Qt中的各种控件),包括下面的按钮控件、标签控件等。

对于按钮类控件,都是继承字自抽象类QAbtractPushButton, 而该抽象类继承自QWidget。

也就是说QWidget中的所有属性和方法QAbstractButton都可以使用,QPushButton和其他按钮类控件都可以使用QWidget和QAbstractButton中的属性和方法。

QPushButton

普通按钮。

QAbstractButton中与QPushButton关系较大的属性及其对应得方法:

text:按钮中的文本。

icon:按钮中的图标。

void setIcon(const QIcon& icon),QIcon是图标类,不需要挂在对象树上,直接在栈区开辟空间即可。

iconSize:按钮中图标的大小。

QSize iconSize(),返回按钮描述按钮图标大小的类对象。

shortcut:按钮对应得快捷键。

void setShortcut(const QKeySequence&),QKeySequence是一个按键序列,支持组合键。

1.字符串形式构造QKeySequenc类型对象,如:QKeySequence("ctrl+c"); QKeySequence("w")

2.Qt中提供的枚举常量进行构造,如:QKeySequence(Qt::Key_A)就是键盘上的A键QKeySequence(Qt::CTRL+Qt::Key_W)就是ctrl+w组合键。

建议使用Qt提供的枚举常量来构造QKeySequenc类型对象。字符串如果拼写错误编译器也不会报错,而使用枚举常量如果写错编译器是会报错的。

autoRepeat:当鼠标左键在按钮按住不放时,按钮是否会连续触发。

void setAutoRepeat(bool)

autoRepeatDaley:重复触发的延时时间,按住按钮多久后开始连续触发。

void setAutoRepeatDaley(int msec),时间单位:ms。

autoRepeatInterval:按钮连续触发的周期。

autoRepeat属性是autoRepeatDaley和autoRepeatInterval的前提。

例子:

创建四个按钮控制一个按钮,四个控制方向的按钮要有对应的图标,并且是关联键盘上的快捷键触发,被控制的按钮要有对应的图标。

QRadioButton

单选按钮。可让我我们在多个选项中选择一个

QAbstractButton中与QRadioButton关系较大的属性及其对应的方法:

作为集继承自QWidget和QAbstractButton得派生类,上面介绍的属性和方法对QRadioButton同样适用。

checkable:是否能选中。bool isCheckable()    void setCheckable(bool)

checked:是否已经被选中,bool isChecked(),checkable是checked的前提。

autoExclusive:是否排他。单选按钮默认就是排他的。

例子:

有三个单选按钮,只能选择一个性别性别分为:male,female,other,选择相应的按钮同时在标签控件上显示选择的性别,点击other按钮标签控件上不能显示选择的性别。

注意:如果一个按钮设为不能被选中,只是不能被选中而已,按钮还是可以被点击的,会触发对应得槽函数。如果点击后不想触发槽函数那就只能让按钮不能被点击,即是按钮变为不可用。 

例子中的做法是现在Widget类的构造函数中把other按钮设置为不可选中,然后在槽函数中判断,isChecked()是否为真,为真即被选中。我们也可以通过在构造函数中直接将other按钮设置为不可用:ui->radioButton_other->setEnabled(false)。

按钮的常见信号函数

QAbstractButton中由以下信号函数,在按钮可用的情况下:

clicked() :点击按钮+释放鼠标左键才能触发。

click(bool):点击按钮+释放鼠标左键并且该按钮此时是被选中触发。

pressed():按下按钮右键触发。

released():鼠标左键释放触发。

toggled:checked属性变化才触发,也就是如果按钮的由被选中到没被选中,或由没被选中到被选中。checkable属性会影响该信号触发。

单选按钮分组

例子:

创建六个单选按钮,用来模拟麦当劳点餐界面。

如果直接运行程序,由于单选按钮默认就是排他的,因此这六个按钮只有一个可以被选择。但是我们要求时汉堡、小食、饮品这三种中都选择一个,因此就要分别对汉堡、小食、饮品进行分组,每组内都具有排他性即可。

注意:要将创建QButtonGroup类对象挂在对象树上因此需要在堆上开辟,然后使用addButton方法向创建的按钮组对象中添加按钮。

QCheckButton

复选按钮。

QAbstractButton中与QCheckButton关系较大的属性:

checkable和checked。

例子:

有三个复选按钮,分别代表的是今天要做的事情,还有一个确认按钮,点击确认按钮后,将选中的事项内容显示出来。

QToolButton

QToolButton的大部分功能与QPushButton是一样的,但是QToolButton主要应用在工具栏,菜单等场景。

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

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

相关文章

SpringBoot3 升级介绍

优质博文:IT-BLOG-CN 一、项目背景 截止2023.05.18,springboot发布了最新版本3.1.0。而在我们开发项目中,springboot一直使用的是1.5.8版本(相差6年的维护更新)。版本差距较大,很多新功能未能得到使用。例如近几年Loom的兴起&am…

运筹说 第130期 | 对策论引言

通过对对策论基础知识进行梳理和总结,小编绘制了《对策论思维导图》,如下图所示,对策论章节一共包含4个小节。 第1小节是对策论引言。介绍了对策论的基本概念,包含对策行为和对策论、对策现象的三要素、对策问题举例及对策的分类…

Windows 与 Linux 下 Ping IPv6 地址 | 常用网络命令

注:本文为网络命令相关文章合辑。 未整理去重。 一、IPv6 概述 IPv6 即 “Internet 协议版本 6”,因 IPv4 地址资源面临耗尽问题而被引入以替代 IPv4。IPv6 则提供了理论上多达 2 128 2^{128} 2128 个地址,有效解决地址不足困境。 IPv6 具…

密码学——密码学概述、分类、加密技术(山东省大数据职称考试)

大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 密码学 大数据…

Android Studio、JDK、AGP、Gradle、kotlin-gradle-plugin 兼容性问题

文章目录 问题:解决办法:gradle与 java的版本兼容AGP与Gradle的版本兼容kotlin 与 jvm 的版本兼容KGP、Gradle、AGP兼容关系kotlin 与 java 的编译版本配置 问题: 你从githb上clone了一个项目,本地跑的时候,各种报错。…

ChatGPT搜索全新升级,向全体用户开放,近屿智能助力AI行业发展

12月17日,OpenAI在第八天直播中正式宣布ChatGPT搜索功能全面升级,并即日起对所有ChatGPT用户开放。此次更新不仅带来了显著的性能提升,还引入了多项突破性功能,如更快的搜索速度、全新的地图体验以及YouTube视频嵌入,为…

VSCode编辑+GCC for ARM交叉编译工具链+CMake构建+OpenOCD调试(基于STM32的标准库/HAL库)

本文以【STM32F103ZET6】单片机作为示例来进行演示,标准库/HAL库的工程是通用的,修改CMakeLists.txt里面的源文件和头文件引用部分即可。 更多细节请参考【VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试(基于STM32的标准库&am…

ResNet网络:深度学习中的革命性架构

目录 ​编辑 引言 ResNet网络的特点 1. 残差块(Residual Block) 2. 恒等映射(Identity Mapping) 3. 深层网络训练 4. Batch Normalization 5. 全局平均池化 6. 灵活的结构 ResNet的应用案例 ResNet的研究进展 实战案例…

Axure9设置画布固定

在使用AxureRP9设计原型时,如果遇到画布在拖动时变得难以控制,可以尝试在Windows系统中通过‘文件’>‘首选项’,或在Mac系统中通过‘AxureRP9’>‘偏好设置’进行设置,以稳定画布的行为。 现象 页面底层的画布&#xff0…

景联文科技入选中国信通院发布的“人工智能数据标注产业图谱”

近日,由中国信息通信研究院、中国人工智能产业发展联盟牵头,联合中国电信集团、沈阳市数据局、保定高新区等70多家单位编制完成并发布《人工智能数据标注产业图谱》。景联文科技作为人工智能产业关键环节的代表企业,入选图谱中技术服务板块。…

ESlint代码规范,手动与自动修复

规范说明 规则参考 - ESLint - 插件化的 JavaScript 代码检查工具 规范说明 ​ ​ 可看到是main.js文件报错分别是第三行第30个字符,以及第七行第一个字符 后面则是规范说明,可以根据说明查找相应的规范 一.手动修正 ctrl f 可以搜索 二.自动修正 …

一条线上的点

给你一个数组 points &#xff0c;其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 提示&#xff1a; 1 < points.length < 300points[i].length 2-104 < xi, yi < 104points 中的所有点 互不相同 解析&#xff1a;使用斜…

wxpython图形用户界面编程

wxpython图形用户界面编程 一、wxpython的基础 1.1 wxpython的基础 作为图形用户界面开发工具包 wxPython&#xff0c;主要提供了如下 GUI 内容&#xff1a; 窗口。控件。事件处理。布局管理。 1.2 wxpython的类层次机构 1.3 wxpython的安装 Windows 和 macOS 平台安装&a…

【优选算法篇】位运算小课堂:从入门到精通的奇妙之旅(上篇)

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…

pytest入门九:feature

fixture是pytest特有的功能&#xff0c;用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识&#xff0c;定义在函数前面。在你编写测试函数的时候&#xff0c;你可以将此函数名称做为传入参数&#xff0c;pytest将会以依赖注入方式&#xff0c;将该函数…

Day9 神经网络的偏导数基础

多变量函数与神经网络 在神经网络中&#xff0c;我们经常遇到多变量函数。这些函数通常描述了网络的输入、权重、偏置与输出之间的关系。例如&#xff0c;一个简单的神经元输出可以表示为&#xff1a; z f ( w 1 x 1 w 2 x 2 … w n x n b ) z f(w_1x_1 w_2x_2 \ldots…

sg-exam:Star 2.2k,一套完善的在线教育平台,支持在线考试、在线学习,教育项目用它就没有错~~

​嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 sg-exam是一个基于Java语言的在线考试系统&#xff0c;它集成了试卷管理、试题管理、考试安排、在线作答、自动阅卷等功能。该项目旨在帮助教育机构…

ArkTS中string和String/number和Number类型大小写的区别

ArkTS和TypeScript类似&#xff0c;string 和 String&#xff0c;number 和 Number 之间有一些重要的区别&#xff1a; 基本类型与对象类型 基本类型 (string, number)&#xff1a; string 和 number 是基本数据类型&#xff0c;用于表示原始值。例如&#xff1a;let str: str…

Ubuntu22.04切换gcc版本教程

在编译安装程序的时候,由于gcc版本过高,导致编译无法通过,需要降低gcc版本。 一、安装gcc版本 根据自己的需求安装gcc版本。 sudo apt update sudo apt install gcc-10 g++-10二、切换gcc版本 sudo update-alternatives --install /usr/bin/gcc gcc

c++领域展开第四幕——类和对象(上篇收尾 this指针、c++和c语言的初步对比)超详细!!!!

文章目录 前言一、this指针二、c和c语言的初步对比总结 前言 上篇我们初步学习了类的基本概念以及实例化 今天我们来学习类的构造以及析构还有类的默认成员函数&#xff0c;类和对象这一部分都会有点难 跟着我一起来吧 一、this指针 Date类中有 Init 与 Print 两个成员函数&…