【Qt】按钮类控件

news/2024/11/16 19:38:36/

文章目录

  • 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/news/1456075.html

相关文章

为什么 ChatGPT 不火了?

不火了是有原因的,下面我来从大部分人拿到 ChatGPT 之后的两大痛点开始讲起: 很多朋友拿到 ChatGPT 后的第一个痛点就是:用的不好 你经常会感觉到 ChatGPT 回答的好空,没有太多参考价值。 而第二个痛点则是:无处去用…

前端技术Stylus详解与引入

Stylus 是一种动态样式语言,它允许使用更少的代码来生成 CSS。它是一个预处理器,这意味着你需要在浏览器加载前将 Stylus 代码转换成 CSS。Stylus 提供了多种功能,如变量、混合(mixins)、函数、继承等,这些…

【强训笔记】day10

NO.1 思路:中心扩展。从i位置开始,从i-1为左边和i1右边进行移动,字符相等就继续移动,直到不等,更新回文串长度,让i为左边,i1右边再移动,同样字符相等就移动,不等就更新长…

组件通信-(父子组件通信)

目录 一、什么是组件通信 二、组件关系的分类 三、组件通信解决方案 四、父传子 五、子传父 一、什么是组件通信 组件通信,就是指组件与组件之间的数据传递。组件的数据是独立的,无法直接访问其他组件的数据。如果想使用其他组件的数据,…

鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案

官方概述 先看官方对事件的描述. 事件(Event)是一种任务间通信的机制,可用于任务间的同步。 多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。 一对多同步模型…

#04 构建您的第一个神经网络:PyTorch入门指南

文章目录 前言理论基础神经网络层的组成前向传播与反向传播 神经网络设计步骤1:准备数据集步骤2:构建模型步骤3:定义损失函数和优化器步骤4:训练模型步骤5:评估模型结论 前言 在过去的几天里,我们深入了解了…

2024年第七届可再生能源与环境工程国际会议(REEE 2024)即将召开!

2024年第七届可再生能源与环境工程国际会议(REEE 2024)将于2024 年8月28-30日在法国南特举行。共绘绿色未来,全球同频共振!REEE 2024将汇聚全球可再生能源与环境工程领域的专家学者和业界精英,共同探讨行业发展的前沿技…

笔试强训Day15 二分 图论

平方数 题目链接&#xff1a;平方数 (nowcoder.com) 思路&#xff1a;水题直接过。 AC code&#xff1a; #include<iostream> #include<cmath> using namespace std; int main() {long long int n; cin >> n;long long int a sqrtl(n);long long int b …