QAbstractButton类是按钮部件的抽象基类,提供了按钮所共有的功能。
QAbstractButton类实现了一个抽象按钮,并且让它的子类来指定如何处理用户的动作,并指定如何绘制按钮。
QAbstractButton提供了点击和勾选按钮。QRadioButton和QCheckBox类只提供了勾选按钮,QPushButton和QToolButton提供了点击按钮,如果需要的话,它们还可以提供切换行为。
常用状态
Qt提供的所有按钮(QPushButton、QToolButton、QCheckBox和QRadioButton)都能够既显示文本也可以显示图标。
默认按钮(在很多对话框中被使用的)由QPushButton::setDefault()和QPushButton::setAutoDefault()提供。
QAbstractButton提供了按钮所要用到的绝大多数状态:
isDown()
按钮是否被按下。isChecked()
按钮是否被选中。只有切换按钮才能被切换为选中或不选中(请看下面)。isEnabled()
按钮是否可以被用户按下。setAutoRepeat()
如果用户按下按钮,按钮是否可以自动回复。setToggleButton()
按钮是否是一个切换按钮。
isDown()和isChecked()的不同点:
当用户点击一个切换按钮并且把它选中,按钮首先被按下并且然后被释放变为选中状态。当用户再次点击(非选中),按钮首先被置为按下状态,然后变为非选中状态(isOn()和isChecked()都为false)。
信号
QAbstractButton提供了四个信号:
pressed()
当鼠标光标在按钮内,鼠标左键被按下时,发送此信号。released()
当鼠标左键被释放时,发送此信号。clicked()
当按钮被按下然后又被释放,或按下快捷键,或当animateClick()被调用时,发送此信号。toggled()
当切换按钮的状态变化时,发送此信号。
任何按钮,都可以显示一个包含文本和图标的标签。setText()用来设置文本,setIcon()可以置图标。如果按钮被禁用,其标签更改为“disabled”样式。