【Qt】控件——Qt按钮类控件、常用的按钮类控件、按钮类控件的使用、Push Button、Radio Button、Check Box

文章目录

  • Qt
    • [3. Qt按钮类控件](#3. Qt按钮类控件)
      • [Push Button](#Push Button)
      • [Radio Button](#Radio Button)
      • [Check Box](#Check Box)

Qt

3. Qt按钮类控件

Push Button

使用 QPushButton 表示一个按钮。当点击按钮时可以触发各种事件。QPushButton 继承自 QAbstractButton。这个类是一个抽象类。是其他按钮的父类。

PushButton和QAbstractButton的继承关系:

我们看到QAbstractButto 是继承于QWidget, 所以 QPushButton 的核心功能主要来自 QAbstractButton 。当然 QAbstractButton 的功能也都比较简单。

**  因为 QAbstractButton 继承于 QWidget,QWidget 里的各种属性用法QAbstractButton,QAbstractButton也派生了很多新的用法:**

属性 说明
text 按钮中的文本
icon 按钮中的图标
iconSize 按钮中图标的尺寸
shortCut 按钮对应的快捷键
autoRepeat 按钮是否会重复触发. 当鼠标左键按住不放时,如果设为true,则会持续产生鼠标点击事件;如果设为false,则必须释放鼠标,再次按下鼠标时才能产生点击事件. (相当于游戏手柄上的 "连发" 效果)
autoRepeatDelay 重复触发的延时时间. 按住按钮多久之后,开始重复触发.
autoRepeatInterval 重复触发的周期

PushButton 又继承于 QAbstractButton,所以QAbstractButton 提供的功能 PushButton 也都可以使用。

  1. setIcon可以为我们的按钮设置图标。

  1. 上面按钮中的图标很小,我们可以使用setIconSize来设置按钮中图片的大小,参数为QSize(50,50),代表QIcon元素的长度和宽度。

  2. 我们还可以移动这个按钮到合适的位置。

Radio Button

QRadioButton 是单选按钮,可以让我们在多个选项中选择一个。作为 QAbstractButton 和 QWidget 的子类,上面介绍的属性和用法,对于 QRadioButton 同样适用。

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

  1. Radio Button是单选按钮,在界面上如果有多个Radio Button,只能选中其中一个Radio Button,当然如果想要选择多个按钮,可以将按钮进行分组操作。

  2. 我们实现性别选择器,通过Radio Button进行选项的唯一选择,并且为它创建槽函数,每次切换性别时,界面都会在窗口和终端打印选择的结果。

  1. setChecked 设置 Radio Button 按钮的是否为默认选中。

  1. setEnabled 设置 Radio Button 按钮的禁用状态。被禁用的按钮无法被选中,也无法响应任何输入。

**  click、press、release、toggled 的区别:**

・clicked 表示一次 "点击"。

・pressed 表示鼠标 "按下"。

・released 表示鼠标 "释放"。

・toggled 表示按钮状态切换。

我们可以引入 QButtonGroup 对按钮进行分组。QButtonGroup 是一个容器类,主要用于管理多个按钮的行为,尤其是单选按钮和复选按钮。

  1. 我们通过 QButtonGroup 实现一个点餐选择界面,先在可视化界面进行控件的创建并且移动到合适的位置。但是此时这六个 QRadioButton 之间都是排他的,我们希望每一组内部来控制排他,但是组和组之间不能排他。

  1. 创建三个 QButtonGroup,将对应的 RadioButton 设置到对应的 QButtonGroup 中,这样就可以完成我们想要实现的功能了。

Check Box

QCheckBox 表示复选按钮,可以允许选中多个。

和 QCheckBox 最相关的属性也是 checkable 和 checked,都是继承自 QAbstractButton。至于 QCheckBox 独有的属性 tristate 用来实现 "三态复选框"。

  1. Check Box 是复选框不会受其他 Check Box被选择的影响。

  1. isChecked()可以返回当前的 Check Box 是否处于被选中状态。

相关推荐
Death20034 分钟前
PCL库中的算法封装详解
c++·qt·算法·3d
勇敢滴勇35 分钟前
【C++】继承和多态常见的面试问题
java·c++·面试
Qhumaing44 分钟前
小白C/C++语言常见问题(持续更新)
c语言·c++·算法
小柯J桑_1 小时前
C++:二叉搜索树(迭代)
c++·二叉搜索树
铭正1 小时前
c++时间形式转换
c++·时间格式转换
啦啦啦!1 小时前
2024年10月30日(双指针算法)
c++·算法·leetcode
△曉風殘月〆2 小时前
C#与C++结构体的交互
c++·c#·p/invoke
hugerat2 小时前
嵌入式linux跨平台基于mongoose的TCP C++类的源码
linux·c++·tcp/ip
无敌岩雀2 小时前
C++设计模式创建型模式———单例模式
c++·单例模式·设计模式
canyuemanyue2 小时前
C++单例模式
开发语言·c++·单例模式