QPushButton
一、描述
命令按钮是矩形的,通常显示描述其操作的文本标签。可以通过在文本中的首选字符前加一个与号来指定快捷键。例如:
QPushButton *button = new QPushButton("&Download", this);
在这个例子中,快捷键是 Alt+D(要显示实际的&符号,使用“&&”)。
按钮显示文本标签,以及可选的小图标。如果按钮被禁用,文本和图标的外观将根据 GUI 样式进行操作,使按钮看起来“禁用”。
对话框的默认按钮,即当对话框接收到键盘输入焦点时,会自动成为默认按钮。默认按钮是当用户在对话框中按下 Enter 或 Return 键时激活的按钮。
注意:在 macOS 上,当按钮的宽度小于 50 或高度小于 30 时,按钮的角将从圆形变为方形。使用 setMinimumSize() 函数来防止这种行为。
QAbstractButton 基类提供了大部分模式和其他 API,QPushButton 提供了 GUI 逻辑。
二、属性成员
1、autoDefault : bool
按钮是否为自动默认按钮。
在某些 GUI 样式中,默认按钮周围有一个额外的框架,最多 3 像素或更多。Qt 会自动保留自动默认按钮周围的空间,即自动默认按钮可能具有稍大的尺寸提示。
对于具有 QDialog 父级的按钮,此属性的默认值为 true。
2、default : bool
按钮是否为默认按钮。默认为 false。
默认和自动默认按钮决定当用户在对话框中按下 Enter 键时会发生什么。
此属性设置为 true 的按钮将在用户按下 Enter 键时自动按下,但有一个例外:如果 autoDefault 按钮当前具有焦点,则按下 autoDefault 按钮。
当对话框有 autoDefault 按钮但没有 default 按钮时,按 Enter 键将按下当前具有焦点的 autoDefault 按钮。
在对话框中,一次只有一个按钮可以是 default 按钮。
default 按钮行为仅在 QDialog 中提供。当按钮具有焦点时,始终可以通过按空格键从键盘单击按钮。
3、flat : bool
按钮是否扁平化。默认为 false。
如果设置了此属性,除非按钮被按下,否则大多数样式将不会绘制按钮背景。
setAutoFillBackground() 可用于确保使用 QPalette::Button 画笔填充背景。
三、成员函数
1、void showMenu()
显示(弹出)关联的弹出菜单。
2、void setMenu(QMenu *menu)
设置与此按钮相关联的菜单。这会将按钮变成菜单按钮,在某些样式中,它会在按钮文本的右侧生成一个小三角形。
菜单的所有权不会转移到按钮上。
QCommandLinkButton
一、描述
继承自QPushButton,外观通常类似于平面按钮的外观,但除了普通按钮文本外,它还允许使用描述性文本。
二、属性成员
1、description : QString
描述性标签,用作补充按钮文本。这通常会以比主要文本更小的字体显示。
QCheckBox
一、描述
QCheckBox 是一个复选框按钮。
除了通常的选中和未选中状态之外,QCheckBox 还可以选择提供第三种状态来指示“无变化”。当需要为用户提供既不选中也不取消选中复选框的选项时,这很有用。
设置图标:
看起来有点奇怪就是了。
二、属性成员
1、tristate : bool
复选框是否为三态复选框。默认为 false。
三、成员函数
1、【信号】void stateChanged(int state)
每当复选框的状态发生变化时,即当用户选中或取消选中它时,都会发出此信号。
state 包含复选框的新 Qt::CheckState。
enum Qt::CheckState:
- Qt::Unchecked:被选中
- Qt::PartiallyChecked:部分选中
- Qt::Checked:被选中
2、Qt::CheckState checkState()
返回复选框的选中状态。
如果不是三态复选框,应该使用 QAbstractButton::isChecked()。
3、void setCheckState(Qt::CheckState state)
设置复选框的选中状态。
如果不是三态复选框,应该使用 QAbstractButton::setChecked()。
QRadioButton
一、描述
QRadioButton 是一个单选按钮。在一组单选按钮中,一次只能选中一个单选按钮。
默认情况下,单选按钮的 autoExclusive 为true,即属于同一父小部件的单选按钮是互斥的。如果需要为属于同一个父控件的单选按钮使用多个独占按钮组,请将它们放入 QButtonGroup 中。