Qt常用基础控件总结—按钮部件

本文详细介绍了Qt中常用的控件,包括QAbstractButton的按钮部件,如QPushButton、QCheckBox、QRadioButton和QToolButton,讨论了它们的属性、信号和槽函数。此外,还涵盖了带边框的部件如QFrame和QLabel,输入部件如QComboBox和QLineEdit,以及旋转框部件QAbstractSpinBox的子类QSpinBox和QDoubleSpinBox。最后,提到了容器部件QGroupBox的功能和用法。
摘要由CSDN通过智能技术生成

按钮部件

按钮部件共同特性

Qt 用于描述按钮部件的类、继承关系、各按钮的名称和样式,如下图:
在这里插入图片描述
助记符:使用字符"&“可在为按钮指定文本标签时设置快捷键,在&之后的字符将作为快捷键。比如 “A&BC” 则 Alt+B 将成为该按钮的快捷键,使用”&"字符设置的快捷键常称为助记符,一般会在其对应字符下加上下划 线,对于 windows 当按下 Alt 键时,才会显示下划线。默认情况下 Qt 不会显示加下划线的快捷键。

按钮的排他性(或称为独占性)和排他性组(独点性组):是指位于同一组(被称为排他性组)中的可选按钮,任何时候只能有一个按钮被选中,选中一个按钮会自动取消之前选中的按钮。Qt 使用 QButtonGroup 类描棕对按钮的分组,通常单选按钮具有排他性,当然复选按钮也可以具有排他性。

可选中、被选中、选中状态:可选中是指像复选按钮或单选按钮之类的按钮,他们是可以被选中的,被选中的按钮呈现出的状态就是选中状态。对于复选按钮,选中后在前面会有一个勾形的符号,而标准按钮 QPushButton 是不可被选中的。

按钮的按下和弹起状态:当在按钮上按下鼠标不放时,按钮通常看起来像是被按下的样子,这时的状态就是按下状态。

菜单按钮:是指单击该按钮会弹出一个下拉菜单的按钮,见下图, 在 Qt 中,标准按钮 QPushButton、工具按钮 QToolButton 可设置为菜单按钮。
在这里插入图片描述
按钮的启用与禁用:按钮被禁用时通常会变灰,按钮的启用/禁用是由 QWidget 类中的enabled 属性描述的。

抽象按钮类QAbstractButton

QAbstractButton类介绍

QAbstractButton 是个抽象类,该类是标准按钮 QPushButton、复选按钮 QCheckBox、单选按钮 QRadioButton、工具按钮 QToolButton 的父类,该类描述了按钮的一些共同功能,比如单击按钮发出的信号,按钮的状态等。注意:C++语法规定,不能创建抽象类的对象。

若要子类化 QAbstractButton 类,必须重新实现 paintEvent()函数(这是个纯虚函数),以绘制按钮的轮廓或像素图,并且建议重新实现 sizeHint(),若有两个以上状态的按钮(如三态按钮),还必须重新实现 checkStateSet()和 nextCheckState()函数。

注意:若重新实现了按钮类中的事件处理函数,有可能会阻止 Qt 对按钮的默认处理行为,比如若重写了 QCheckBox 类的 mousePressEvent(),则当在该按钮上单击鼠标时,不会使按钮被选中。因此,程序员重写这些事件处理函数时,通常需要调用父类的该函数,以便使用 Qt 的默认处理行为。

按下状态与选中状态

  • Qt 在内置的默认事件处理函数 mousePressEvent()中(以鼠标点击为例)设置了按钮的按下状态,在 mouseReleaseEvent()中清除了按钮的按下状态。也就是说,若程序员仅仅重写了按钮的 mouseReleaseEvent() 函数,且在其中未清除按钮的按下状态,则当使用鼠标点击按钮后,按钮后一直处于按下状态。若重写了 mousePressEvent()函数,且未对按钮设置按下状态,则当用鼠标点击按钮时,则按钮不会出现按下状态。读者可自行编写程序进行验证。
  • 按下状态与选中状态的默认执行顺序是:当用鼠标点击按钮时(使用其他方式点击按钮类似),首先设置按下状态,然后设置选中状态,若再次用鼠标点击按钮,也是首先设置按下状态,然后再清除按钮的选中状态。在每次鼠标释放时会清除按钮的按下状态。

QAbstractButton 类中的属性函数

在这里插入图片描述
1)autoExclusive:bool 访问函数:bool autoExclusive() const; void setAutoExclusive(bool);
描述了按钮的自动排他性,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值