【Qt】按钮类控件

embedded/2024/10/20 17:15:05/

文章目录

  • 1 :peach:Push Button:peach:
  • 2 :peach:Radio Buttion:peach:
  • 3 :peach:Check Box:peach:
  • 4 :peach:Tool Button:peach:


1 🍑Push Button🍑

使⽤ QPushButton 表⽰⼀个按钮,这也是当前我们最熟悉的⼀个控件了,QPushButton 继承⾃ QAbstractButton ,这个类是⼀个抽象类,是其他按钮的⽗类。
在这里插入图片描述

QAbstractButton 和 QPushButton 相关性较⼤的属性:

属性说明
text按钮中的⽂本
icon按钮中的图标
iconSize按钮中图标的尺⼨
shortCut按钮对应的快捷键
autoRepeat按钮是否会重复触发. 当⿏标左键按住不放时,如果设为 true, 则会持续产⽣⿏标点击事件;如果设为 false, 则必须释放⿏标, 再次按下⿏标时才能产⽣点击事件.(相当于游戏⼿柄上的 “连发” 效果)
autoRepeatDelay重复触发的延时时间. 按住按钮多久之后, 开始重复触发
autoRepeatInterval重复触发的周期
  1. QAbstractButton 作为 QWidget 的⼦类, 当然也继承了 QWidget 的属性,QWidget ⾥的各种属性⽤法, 对于 QAbstractButton 同样适⽤,因此表格仅列出 QAbstractButton 独有的属性。
  2. Qt 的 api 设计⻛格是⾮常清晰的,此处列出的属性都是可以 获取 和 设置 的。例如, 使⽤ text() 获取按钮⽂本; 使⽤ setText() 设置⽂本。

事实上, QPushButton 的核⼼功能都是 QAbstractButton 提供的,⾃⾝提供的属性都⽐较简单。其中 default 和 audoDefault 影响的是按下 enter 时⾃动点击哪个按钮的⾏为; flat 把按钮设置为扁平的样式。

代码⽰例: 带有图标的按钮
在这里插入图片描述
演示结果:
在这里插入图片描述
此时我们要求使用快捷键(w,a,s,d)来控制图标按钮的(上,左,下,右)

我们去找一个上下左右的图标,还是使用qrc机制来进行处理:

在这里插入图片描述
然后再设计快捷键:
在这里插入图片描述
至于按钮与信号的关联在之前的文章有讲解,这里就不在多说了。

在这里插入图片描述
按住⿏标时, 即可让龙头连续移动。(快捷键也同理)

2 🍑Radio Buttion🍑

QRadioButton 是单选按钮,可以让我们在多个选项中选择⼀个。
作为 QAbstractButton 和 QWidget 的⼦类, 上⾯介绍的属性和⽤法, 对于 QRadioButton同样适⽤。
QAbstractButton 中和 QRadioButton 关系较⼤的属性:

属性说明
checkable是否能选中
checked是否已经被选中,checkable 是 checked 的前提条件
autoExclusive是否排他。选中⼀个按钮之后是否会取消其他按钮的选中,对于 QRadioButton 来说默认就是排他的

代码实例:模拟点餐。我们知道如果不分组的话各个单选按钮之间是排他的,所以在此之前我们要进行分组。
在这里插入图片描述
单选按钮与槽函数的连接:
在这里插入图片描述
结果验证:
在这里插入图片描述

在这里补充一下 click, press, release, toggled 的区别:

  • clicked 是⼀次⿏标按下+⿏标释放触发的
  • pressed 是⿏标按下触发的
  • released 是⿏标释放触发的
  • toggled 是 checked 属性改变时触发的

3 🍑Check Box🍑

QCheckBox 表⽰复选按钮,可以允许选中多个。和 QCheckBox 最相关的属性也是 checkable 和 checked , 都是继承⾃QAbstractButton 。⾄于 QCheckBox 独有的属性 tristate ⽤来实现 “三态复选框” ,这个东西⽐较冷⻔,有兴趣大家可以自行下去了解。

代码⽰例: 获取复选按钮的取值
我们创建多个复选按钮,然后打印出来最后选择的所有选项:

代码:
在这里插入图片描述
验证:
在这里插入图片描述
在这里插入图片描述

4 🍑Tool Button🍑

QToolButton 的⼤部分功能和QPushButton 是⼀致的,但是 QToolButton 主要应⽤在⼯具栏, 菜单等场景。这里先不进行过多介绍。


http://www.ppmy.cn/embedded/35962.html

相关文章

数据交换和异步请求(JSONAjax))

目录 一.JSON介绍1.JSON的特点2.JSON的结构3.JSON的值JSON示例4.JSON与字符串对象转换5.注意事项 二.JSON在Java中的使用1.Javabean to json2.List to json3.Map to JSONTypeToken底层解析 三.Ajax介绍1.介绍2.Ajax经典应用场景 四.Ajax原理示意图1. 传统web应用2.Ajax方法 五.…

《21天学通C++》(第十八章)STL list和forward_list

std::list的特点 1.插入和删除操作高效:在任意位置插入或删除元素的开销是 O(1),不需要像 std::vector 那样可能需要移动大量元素。 2.不支持随机访问:访问 std::list 中的元素需要从头开始遍历到所需位置,访问特定元素的时间复杂…

数字孪生—物联网技术

数字孪生涉及到诸多技术领域,物联网技术在数据孪生项目中具有重要的应用价值,主要体现在以下几个方面: 1.数据采集和实时监测:物联网技术可以用于实时采集各种设备、传感器和设施的数据,包括温度、湿度、压力、振动等…

【前端】HTML实现个人简历信息展示页面

文章目录 前言一、 综合案例:个人简历信息展示页面 前言 这篇博客仅仅是对HTML的基本结构进行了一些说明,关于HTML的更多讲解以及CSS、Javascript部分的讲解可以关注一下下面的专栏,会持续更新的。 链接: Web前端学习专栏 下面我…

「AIGC」深度学习

深度学习是机器学习的一个子领域,它基于人工神经网络的学习算法。深度学习在图像和语音识别、自然语言处理、医学图像分析、药物发现、自动驾驶汽车等领域取得了显著的进展。以下是围绕深度学习的几个关键主题的阐述。 学习路线 基础数学: 了解线性代数…

LeetCode 难题解析 —— 正则表达式匹配 (动态规划)

10. 正则表达式匹配 思路解析 这道题虽然看起来不难理解,但却存在多种可能,当然这种可能的数量是有限的,且其规律对于每一次判别都使用,所以自然而然就想到用 动态规划 的方法啦 接下来逐步分析可能的情况: &#x…

JVS物联网设备连接管理:支持手动与定时启停

通道连接的启停 功能说明 为了更灵活地管理设备连接,平台需要在设备连接的新增和编辑功能中增加启停策略的配置。支持手动启停和定时启停两种选项,以便根据实际需求对设备连接进行灵活的控制。 功能 手动启停: 用户可以选择手动启停作为…

如何在CentOS部署青龙面板并实现无公网IP远程访问本地面板

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…