【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 是否处于被选中状态。

            

            

相关推荐
apocelipes3 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
郝学胜_神的一滴2 天前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天2 天前
C++ 基础入门完全指南
c++
用户805533698034 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner4 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
BadBadBad__AK4 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境5 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境5 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴5 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境7 天前
C++ 的Eigen 库全解析
c++