QPushButton Class
QPushButton 提供一个命令按钮. 更多...
头文件: | #include <QPushButton> |
qmake: | QT += widgets |
基类: | QAbstractButton |
派生类: |
属性
- autoDefault : bool
- default : bool
- flat : bool
- 11 个属性继承自 QAbstractButton
- 59 个属性继承自 QWidget
- 1 个属性继承自 QObject
公有函数
QPushButton(QWidget *parent = Q_NULLPTR) | |
QPushButton(const QString &text, QWidget *parent = Q_NULLPTR) | |
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR) | |
~QPushButton() | |
bool | autoDefault() const |
bool | isDefault() const |
bool | isFlat() const |
QMenu * | menu() const |
void | setAutoDefault(bool) |
void | setDefault(bool) |
void | setFlat(bool) |
void | setMenu(QMenu *menu) |
重新实现的公有函数
virtual QSize | minimumSizeHint() const |
virtual QSize | sizeHint() const |
- 21 个公有函数继承自 QAbstractButton
- 214 个公有函数继承自 QWidget
- 32 个公有函数继承自 QObject
- 14 个公有函数继承自 QPaintDevice
公有槽函数
void | showMenu() |
- 5 个公有槽函数继承自 QAbstractButton
- 19 个公有槽函数继承自 QWidget
- 1 个公有槽函数继承自 QObject
受保护的函数
void | initStyleOption(QStyleOptionButton *option) const |
重新实现的受保护函数
virtual bool | event(QEvent *e) |
virtual void | focusInEvent(QFocusEvent *e) |
virtual void | focusOutEvent(QFocusEvent *e) |
virtual void | keyPressEvent(QKeyEvent *e) |
virtual void | paintEvent(QPaintEvent *) |
- 14 个受保护的函数继承自 QAbstractButton
- 35 个受保护的函数继承自 QWidget
- 9 个受保护的函数继承自 QObject
- 1 个受保护的函数继承自 QPaintDevice
其他继承的成员
- 4 个信号继承自 QAbstractButton
- 3 个信号继承自 QWidget
- 2 个信号继承自 QObject
- 1 个公有变量继承自 QObject
- 5 个静态公有成员继承自 QWidget
- 10 个静态公有成员继承自 QObject
- 1 个受保护的槽函数继承自 QWidget
- 2 个受保护的变量继承自 QObject
- 1 protected type inherited from QPaintDevice
详细描述
QPushButton 提供一个命令按钮.
按钮(或称为命令按钮)可能是GUI界面上最常用的widget. 按下(单击)按钮命令计算机执行一些动作或回答问题. 典型的按钮有OK, 确定, 取消, 关闭, 是, 否和帮助.
通常, 按钮是矩形, 并显示一个描述动作的文本. 按钮的快捷键可以通过在文本前加一个符号('&')指定. 例如:
QPushButton *button = new QPushButton("&Download", this);
在这个示例中, 快捷键是 Alt+D. 详见 QShortcut (使用 '&&'显示'&').
按钮可以选择显示一个文本或图片, 也可同时显示. 文本和图片可以使用构造函数设置, 也可调用 setText() 和 setIcon()设置. 如果按钮是禁用的, 你可以通过设置GUI样式修改按钮的文本和图片显示效果, 使按钮看起来像 "disabled".
使用鼠标, 空格键或键盘快捷方式激活按钮时, 按钮会发信号 clicked() . 连接这个信号执行按钮的动作. 按钮也提供一些不常用的信号, 例如 pressed() 和 released().
对话框中的按钮是自动默认按钮, 也就是说., 他们接收到键盘输入焦点时, 他们自动变为默认按钮. 在对话框中, 默认按钮是用户按下 键盘(Enter 或 Return)时激活的按钮. 你能调用 setAutoDefault()改变默认按钮. 注意: 自动默认按钮预留少量空间用以绘制默认按钮标识. 如果你可以调用 setAutoDefault(false)去掉预留空间.
在过去十年间, 按钮已发展为容纳更多变化的核心widget. 微软界面风格指南显示大约10种不同的Windows按键和文本提示状态, 如果考虑所有的功能组合, 还会增加几十种状态.
最重要的模式或状态是:
- 是否可用 (灰色显示表示禁用).
- 标准按钮, 切换按钮或菜单按钮.
- 开或关 (仅适用切换按钮).
- 默认或正常. 默认按钮是对话框中可以使用Enter或Return "点击" .
- 是否自动重复.
- 是否按下.
一般而言, 当widget是一个宽的, 带有文本的矩形, 并响应用户的点击(如确定, 取消, 关闭和帮助)时, 使用按钮. 一个小的, 正方形的按钮是工具按钮, 工具按钮是改变窗口状态, 而不触发动作(如QFileDialog右上角的关闭按钮). Qt 提供一个特殊类 (QToolButton) 作为工具按钮.
如果你需要切换行为 (参见 setCheckable()) 或自动重复信号的按钮 (参见 setAutoRepeat()), 那么命令按钮不是你想要的. 当心存疑惑时, 请使用工具按钮.
一个命令按钮的变体是菜单按钮. 它们提供的不是一个命令, 而是多个命令. 单击按钮时, 弹出一个选择菜单. 调用 setMenu()为按钮关联弹出菜单.
其他类型的按钮是选择按钮 (参见 QRadioButton) 和复选框 (参见 QCheckBox).
![]() | A push button shown in the Macintosh widget style. Note that when a button's width becomes smaller than 50 or its height becomes smaller than 30, the button's corners are changed from round to square. Use the setMinimumSize() function to prevent this behavior. |
![]() | 在A push button shown in the Windows Vista widget style. |
![]() | A push button shown in the Fusion widget style. |
在Qt中, QAbstractButton 基类提供大部分模式和API, QPushButton 提供GUI逻辑. 有关API更多信息参见 QAbstractButton .
参见 QToolButton, QRadioButton, QCheckBox, and GUI Design Handbook: Push Button.
属性
autoDefault : bool
按钮是否是自动默认按钮
true表示按钮是自动默认按钮.
在一些GUI风格中, 默认按钮周围绘制额外边框, 3像素或更多. Qt自动预留自动默认按钮的空间, 即., 自动默认按钮有较大的大小提示.
按钮的父对象是 QDialog 时, 属性默认值是true; 否则默认值是false.
default 和 auto-default如何交互参见 default 属性.
访问函数:
bool | autoDefault() const |
void | setAutoDefault(bool) |
default : bool
否是默认按钮
默认和自动默认按钮决定用户在对话框中按下enter键会发生什么.
如果按钮的default属性设置为 true (即., 对话框 默认 按钮,), 表示用户按下enter键时触发按钮的按下动作, 一个例外: 如果一个具有 autoDefault 属性的按钮具有焦点, 这个按钮会触发按下动作. 对话框有 autoDefault 属性按钮但没有 default 按钮, 按下enter键触发具有焦点的 autoDefault按钮, 或没有按钮具有焦点, 按下焦点链表中的下一个具有焦点的 autoDefault 按钮.
对话框中一次只有一个默认按钮. 这个按钮显示一个额外的默认框 (外观取决于 GUI 样式).
只有对话框提供默认按钮行为. 按钮具有焦点时, 用户按下空格键触发按钮按下动作.
对话框可见时, 如果当前默认按钮的default 属性设置为false, 那么按钮在下一次获取焦点时, 自动重新分配新的默认值.
默认值是 false.
访问函数:
bool | isDefault() const |
void | setDefault(bool) |
flat : bool
按钮边框是否凸起
默认值是 false. 如果按钮设置此属性, 多数样式在未被按下时,不会绘制按钮背景. 调用setAutoFillBackground() 函数, 使用 QPalette::Button 画刷填充背景.
访问函数:
bool | isFlat() const |
void | setFlat(bool) |
成员函数
QPushButton::QPushButton(QWidget *parent = Q_NULLPTR)
构造函数
参数: parent 父对象
QPushButton::QPushButton(const QString &text, QWidget *parent = Q_NULLPTR)
构造函数
参数: text 显示文本
参数: parent 父对象
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR)
构造函数
参数: icon 显示图片
参数: text 显示文本
参数: parent 父对象
注意: 你可以使用 QPixmap 对象作为一个图片 (自动调用QIcon的默认构造函数转换).
QPushButton::~QPushButton()
析构函数
[virtual protected]
bool QPushButton::event(QEvent *e)
重新实现 QObject::event().
[virtual protected]
void QPushButton::focusInEvent(QFocusEvent *e)
重新实现 QWidget::focusInEvent().
[virtual protected]
void QPushButton::focusOutEvent(QFocusEvent *e)
重新实现 QWidget::focusOutEvent().
[protected]
void QPushButton::initStyleOption(QStyleOptionButton *option) const
使用参数 option 初始化 QPushButton. 这个函数用于需要定义一个 QStyleOptionButton自定义派生类, 但是不想填充实现所有的信息.
参见 QStyleOption::initFrom().
[virtual protected]
void QPushButton::keyPressEvent(QKeyEvent *e)
重新实现 QWidget::keyPressEvent().
QMenu *QPushButton::menu() const
返回按钮关联的弹出菜单, 0表示未设置弹出按钮.
参见 setMenu().
[virtual]
QSize QPushButton::minimumSizeHint() const
重新实现 QWidget::minimumSizeHint().
[virtual protected]
void QPushButton::paintEvent(QPaintEvent *)
重新实现 QWidget::paintEvent().
void QPushButton::setMenu(QMenu *menu)
设置按钮关联的弹出菜单 menu . 按钮转为菜单按钮, 有些样式会在按钮的文本右侧绘制一个小三角.
菜单的所有权 没有 转移到按钮.
使用Fusion widget样式显示带有弹出菜单的按钮.
参见 menu().
[slot]
void QPushButton::showMenu()
显示关联的弹出菜单. 如果没有设置菜单, 函数什么也不做. 这个函数直到用户关闭弹出菜单才会返回.
[virtual]
QSize QPushButton::sizeHint() const
重新实现 QWidget::sizeHint().