阅读导航
- 引言
- 一、按钮类控件概述(继承关系)
- 二、QPushButton
- 三、QRadioButton
- 四、QCheckBox
- 五、QToolButton
引言
在之前的文章中,我们聊到了Qt中QWidget的基础属性,它是构建所有GUI元素的基础。今天,我们要更进一步,聊聊Qt中非常直观且常用的控件——按钮。
一、按钮类控件概述(继承关系)

由上图我们可以看出按钮类控件(QPushButton | QCheckBox | QRadioButton | QToolButton)都继承自QAbstractButton类,而QAbstractButton,作为QWidget的子类,自然而然地继承了QWidget的所有属性,所以我们上一篇文章讲的QWidget类的属性都可以在按钮类的控件中使用。例如,可以使用text()方法获取按钮的文本,而使用setText()方法来设置文本。
二、QPushButton
使用 QPushButton 表示一个按钮。Qt的按钮类控件支持自定义文本、图标、尺寸、快捷键以及重复触发行为(包括延时和周期),以提供丰富的用户交互体验。
| 属性名称 | 说明 |
|---|---|
| text | 按钮中的文本 |
| icon | 按钮中的图标 |
| iconSize | 按钮中图标的尺寸 |
| shortCut | 按钮对应的快捷键 |
| autoRepeat | 按钮是否会重复触发。当鼠标左键按住不放时,如果设为true,则会持续产生鼠标点击事件;如果设为false,则必须释放鼠标,再次按下鼠标时才能产生点击事件。(相当于游戏手柄上的"连发"效果) |
| autoRepeatDelay | 重复触发的延时时间。按住按钮多久之后,开始重复触发。 |
| autoRepeatInterval | 重复触发的周期。 |
三、QRadioButton
QRadioButton 是 Qt 框架中的一个单选按钮控件,它允许用户在多个选项中仅选择一个。
- 作为 QAbstractButton 和 QWidget 的子类,QRadioButton 继承了这两个类的所有属性和用法,包括文本、图标、尺寸、快捷键等属性的设置与获取,以及信号与槽机制等交互方式。因此,前面介绍的关于 QWidget 和 QAbstractButton 的属性和用法,同样适用于 QRadioButton
- QRadioButton 还具有自己特有的单选互斥功能,确保在同一组中的单选按钮中一次只能有一个被选中。
| 属性名称 | 说明 |
|---|---|
| checkable | 是否能选中 |
| checked | 是否已经被选中。checkable是checked的前提条件。 |
| autoExclusive | 是否排他。选中一个按钮之后是否会取消其他按钮的选中。对于QRadioButton来说,默认就是排他的。 |
四、QCheckBox
QCheckBox 是表示复选按钮的控件,它允许用户从多个选项中选择多个。与 QCheckBox 最直接相关的属性是 checkable 和 checked,这两个属性都是从 QAbstractButton 类继承而来的。checkable 属性决定了复选框是否可以被选中或取消选中,而 checked 属性则表示复选框当前的选中状态。
五、QToolButton
QToolButton通常用于工具栏(QToolBar)中,作为快速访问常用功能或选项的按钮。
| 属性名称 | 说明 |
|---|---|
| arrowType | 设置按钮是否显示箭头图标,以及箭头的方向。这通常用于表示按钮具有下拉或弹出菜单的功能。 |
| autoRaise | 控制按钮在鼠标悬停时是否自动浮起,增加视觉反馈。当设置为true时,鼠标悬停在按钮上时,按钮会稍微浮起,以吸引用户的注意。 |
| popupMode | 设置弹出菜单的触发方式。这决定了用户如何触发与按钮关联的弹出菜单。可能的值包括延迟弹出、立即弹出和仅当点击箭头图标时弹出。 |
| toolButtonStyle | 设置按钮的显示风格,包括图标、文本及其组合方式。这允许开发者根据需要调整按钮的外观,使其更加符合应用程序的整体风格或用户界面的布局。 |



















