Header: | #include <QPushButton> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | < QAbstractButton |
Inherited By: |
【属性】
autoDefault : bool
此属性设置为true,则该按钮为自动默认按钮。 在某些GUI样式中,默认按钮周围会有一个额外的线框。对于具有QDialog父级的按钮,此属性的默认值为true;否则默认为false。访问函数:
bool autoDefault() const void setAutoDefault(bool)
default : bool
此属性保存按钮是否为默认。默认和自动默认按钮决定用户在对话框中按下回车键时会发生什么。 当用户按下回车键时,将自动按下此属性设置为true的按钮(即对话框的默认按钮),但有一个例外:如果autoDefault按钮当前具有焦点,则会按下autoDefault按钮。当对话框有autoDefault按钮但没有默认按钮时,按enter键将按下当前具有焦点的autoDefault按钮,或者如果没有按钮具有焦点,则按下焦点链中的下一个autoDefault按钮。 在对话框中,一次只能有一个按钮作为默认按钮。 默认按钮行为仅在对话框中提供。当按钮具有焦点时,始终可以通过按空格键从键盘上单击按钮。 如果在对话框可见时,当前默认按钮的默认属性设置为false,则下次对话框中的按钮获得焦点时,将自动分配新的默认值。 此属性的默认值为false。访问函数:
bool isDefault() const void setDefault(bool)
flat : bool
此属性保存按钮边框是否凸起。 此属性的默认值为false。如果设置了此属性,只有文字保持显示,按钮底色和边框只有在按下时才有呈现。setAutoFillBackground()可用于确保使用QPalette按钮笔刷填充背景。访问函数:
bool isFlat() const void setFlat(bool)
【公有函数】
QPushButton(QWidget *parent = nullptr)
构造一个没有文本的按钮。
QPushButton(const QString &text, QWidget *parent = nullptr)
构造一个带有父级和文本的按钮。
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)
构造一个带有图标、文本和父级的按钮。 注意,您还可以将QPixmap对象作为图标传递(这基于C++隐式类型转换)。
virtual ~QPushButton()
bool autoDefault() const
按钮是否为自动默认按钮。
bool isDefault() const
按钮是否为默认按钮。
bool isFlat() const
按钮边框是否凸起。
QMenu *menu() const
如果没有设置弹出菜单,则返回按钮的相关弹出菜单或nullptr。
void setAutoDefault(bool)
设置自动默认按钮。
void setDefault(bool)
设置默认按钮。默认按钮可以通过键盘空格或回车代替鼠标点击。
void setFlat(bool)
设置边框凸起。
void setMenu(QMenu *menu)
将弹出菜单与此按钮相关联。这会将按钮变成菜单按钮,在某些样式中,菜单按钮会在按钮文本的右侧生成一个小三角形。 菜单的所有权不会转移到按钮上。 一个带有弹出菜单的按钮,显示在 Fusion widget style。 另请参见:menu()。
【重新实现的公有函数】
virtual QSize minimumSizeHint() const override
重新实现的 QWidget::minimumSizeHint. 此属性返回按钮建议的最小尺寸。 如果此属性的值是无效的尺寸,则不建议使用最小尺寸。 如果此控件没有布局,则minimumSizeHint()的默认返回无效的尺寸,否则返回布局的最小尺寸。 大多数内置控件重新实现minimumSizeHint()。 除非设置了minimumSize()或将尺寸策略设置为QSizePolicy::Ignore,否则QLayout永远不会将控件的尺寸调整为小于最小尺寸提示的大小。如果设置了minimumSize(),则会忽略最小大小提示。
virtual QSize sizeHint() const override
此属性返回控件的建议尺寸。 如果此属性的值是无效的,则不建议使用任何尺寸。 如果此控件没有布局,则sizeHint()默认返回无效的尺寸,否则返回布局的首选尺寸。
【公有槽函数】
void showMenu()
显示(弹出)相关的弹出菜单。如果没有这样的菜单,此功能将不起任何作用。在用户关闭弹出菜单之前,此功能不会返回。
【受保护函数】
virtual void initStyleOption(QStyleOptionButton *option) const
使用option的值对按钮进行初始化。
【重实现保护函数】
virtual bool event(QEvent *e) override
重新实现的 QAbstractButton::event(QEvent *e) 这是主事件处理程序,原始定义是在QWidget,用户可以在任何QWidget子类中重新实现。 在键盘按下和释放事件的处理方式与其他事件不同。event() 检查 Tab 和 Shift+Tab 并尝试适当地移动焦点。如果没有要移动焦点的控件(或者按键不是 Tab 或 Shift+Tab),则 event() 调用 keyPressEvent()。 鼠标的事件处理也略有特殊,只有当控件是enabled,event() 才会调用处理程序mousePressEvent(),否则,它将丢弃该事件。 如果事件被识别,函数返回true,否则返回false。如果已识别的事件可以被接受(参阅QEvent::accepted),则任何进一步的传递(例如事件传递到父控件)都将停止。
virtual void focusInEvent(QFocusEvent *e) override
重新实现的QAbstractButton::focusInEvent(QFocusEvent *e). 这个事件处理程序可以在子类中重新实现,以便控件接收键盘焦点事件。 控件必须将setFocusPolicy() 设置为 Qt::NoFocus 以外的值才能接收焦点事件。(请注意,程序员可以对任何控件调用 setFocus() ,即使是通常不接受焦点的控件也可以。) 这一操作默认会 updates widget(不指定 focusPolicy()的窗口除外)。
virtual void focusOutEvent(QFocusEvent *e) override
重新实现的QAbstractButton::focusOutEvent(QFocusEvent *e).
virtual bool hitButton(const QPoint &pos) const override
virtual void keyPressEvent(QKeyEvent *e) override
QAbstractButton::keyPressEvent重新实现的QAbstractButton::keyPressEvent(QKeyEvent *e).
virtual void mouseMoveEvent(QMouseEvent *e) override
重新实现的 QAbstractButton::mouseMoveEvent(QMouseEvent *e).
virtual void paintEvent(QPaintEvent *) override
重新实现的QAbstractButton::paintEvent(QPaintEvent *e).