阅读导航
- 引言
- 一、按钮类控件概述(继承关系)
- 二、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 | 设置按钮的显示风格,包括图标、文本及其组合方式。这允许开发者根据需要调整按钮的外观,使其更加符合应用程序的整体风格或用户界面的布局。 |