目录

1 属性

2 公共职能

3 重新实现的公共功能

4 公用插槽

5 受保护的功能

6 保护方法

7 详细说明


1 属性

        自动默认值:bool

        此属性保存按钮是否为自动默认按钮
        如果此属性设置为true,则该按钮为自动默认按钮。
        在某些GUI样式中,默认按钮周围会绘制一个额外的框架,最多3个像素或更多。Qt自动在自动默认按钮周围保持此空间空闲,即,自动默认按钮可能具有稍大的大小提示。
        对于具有QDialog父级的按钮,此属性的默认值为true;否则默认为false。
        有关默认和自动默认如何交互的详细信息,请参见默认属性。

        访问功能:

bool autoDefault() const
void setAutoDefault(bool)

      

          默认值:bool

        此属性保存按钮是否为默认按钮
        默认和自动默认按钮决定用户在对话框中按下回车键时会发生什么。
        当用户按下回车键时,将自动按下此属性设置为true的按钮(即对话框的默认按钮),但有一个例外:如果autoDefault按钮当前具有焦点,则会按下autoDefault按钮。当对话框有autoDefault按钮但没有默认按钮时,按enter键将按下当前具有焦点的autoDefault按钮,或者如果没有按钮具有焦点,则按下焦点链中的下一个autoDefault按钮。
        在对话框中,一次只能有一个按钮作为默认按钮。然后,此按钮将显示一个附加框(取决于GUI样式)。
        默认按钮行为仅在对话框中提供。当按钮具有焦点时,始终可以通过按空格键从键盘上单击按钮。
        如果在对话框可见时,当前默认按钮的默认属性设置为false,则下次对话框中的按钮获得焦点时,将自动分配新的默认值。
        此属性的默认值为false。

       访问功能:

bool isDefault() const
void setDefault(bool)

      

     平面:bool

        此属性保存按钮边框是否凸起
        此属性的默认值为false。如果设置了此属性,则除非按下按钮,否则大多数样式都不会绘制按钮背景。setAutoFillBackground()可用于确保使用QPalette:按钮笔刷填充背景。

        访问功能:

bool isFlat() const
void setFlat(bool)


2 公共职能

         QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)

         QPushButton(const QString &text, QWidget *parent = nullptr)
     
         QPushButton(QWidget *parent = nullptr)

virtual  ~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)


3 重新实现的公共功能

virtual QSize  minimumSizeHint() const override
virtual QSize  sizeHint() const override


4 公用插槽

void  showMenu()


5 受保护的功能

void  initStyleOption(QStyleOptionButton *option) const


6 保护方法

virtual bool  event(QEvent *e) override

virtual void  focusInEvent(QFocusEvent *e) override

virtual void  focusOutEvent(QFocusEvent *e) override

virtual void  keyPressEvent(QKeyEvent *e) override

virtual void  paintEvent(QPaintEvent *) override


7 详细说明

 按钮或命令按钮可能是任何图形用户界面中最常用的小部件。按下(单击)按钮可命令计算机执行某些操作或回答问题。典型的按钮有“确定”、“应用”、“取消”、“关闭”、“是”、“否”和“帮助”。
        命令按钮是矩形的,通常显示描述其操作的文本标签。快捷键可以通过在文本中的首选字符前面加上“&”来指定。例如

  QPushButton *button = new QPushButton("&Download", this);

        按钮显示一个文本标签,还可以选择显示一个小图标。这些可以使用构造函数进行设置,稍后使用setText()setIcon()进行更改。如果按钮被禁用,文本和图标的外观将根据GUI样式进行操作,使按钮看起来“被禁用”。

        当鼠标、空格键或键盘快捷键激活按钮时,按钮会发出clicked()信号。连接到此信号以执行按钮的操作。按钮还提供不太常用的信号,例如pressed()released()

        对话框中的命令按钮默认为自动默认按钮,即当它们接收到键盘输入焦点时,它们会自动成为默认按钮。默认按钮是当用户在对话框中按下Enter或Return键时激活的按钮。您可以使用setAutoDefault()进行更改。请注意,自动默认按钮保留了一点额外的空间,这是绘制默认按钮指示器所必需的。如果您不希望按钮周围有此空间,请调用setAutoDefault(false)

        在过去的十年里,按钮小部件作为如此重要的部件,已经发展到可以适应许多变化。微软风格指南现在显示了Windows按钮的大约十种不同状态,文本暗示,如果考虑到所有功能的组合,还会有几十种。

最重要的模式或状态是:
        是否可用(灰显、禁用)。
        标准按钮、切换按钮或菜单按钮。
        打开或关闭(仅用于切换按钮)。
        默认或正常。对话框中的默认按钮通常可以使用Enter或Return键“单击”。
        是否自动重复。
        是否按下。

        一般来说,当应用程序或对话框窗口执行操作时(如“应用”、“取消”、“关闭”和“帮助”),以及当小部件应该具有带文本标签的宽矩形时,请使用按钮。更改窗口状态而不是执行操作的小型(通常为方形)按钮(例如QFileDialog右上角的按钮)不是命令按钮,而是工具按钮。Qt为这些按钮提供了一个特殊的类(QToolButton)。

        如果您需要切换行为(请参见setCheckable())或在按下时自动重复激活信号的按钮(如滚动条中的箭头)(请参见setAutoRepeat()),则命令按钮可能不是您想要的。如果有疑问,请使用工具按钮。

        注意:在macOS上,当按钮的宽度小于50或高度小于30时,按钮的角会从圆形变为方形。使用setMinimumSize()函数可以防止这种行为。

        这是一个可搜索的索引。命令按钮的变体是菜单按钮。它们不仅提供一个命令,而且提供多个命令,因为当单击它们时,它们会弹出一个选项菜单。使用方法setMenu()将弹出菜单与按钮相关联。

        其他类别的按钮包括选项按钮(请参阅QRadioButton)和复选框(请参阅QCheckBox)。

        在Qt中,QAbstractButton基类提供了大多数模式和其他API,QPushButton提供了GUI逻辑。有关API的更多信息,请参见QAbstractButton。

        另请参阅QToolButton、QRadioButton、QCheckBox和GUI设计手册:按钮。

Header: #include <QPushButton> 
qmake:  QT += widgets
Inherits:  QAbstractButton
Inherited By:  QCommandLinkButton
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)

        构造一个带有图标、文本和父级的按钮。
        请注意,您还可以将QPixmap对象作为图标传递(这要归功于C++提供的隐式类型转换)。

QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)

        构造一个带有父级、父级和文本文本的按钮。

QPushButton::QPushButton(QWidget *parent = nullptr)

        构造一个没有文本和父级的按钮。

[slot] void QPushButton::showMenu()

        显示(弹出)相关的弹出菜单。如果没有这样的菜单,此功能将不起任何作用。在用户关闭弹出菜单之前,此功能不会返回。

[virtual] QPushButton::~QPushButton()

        释放按钮。

[override virtual protected] bool QPushButton::event(QEvent *e)

       重新实现: QAbstractButton::event(QEvent *e).

[override virtual protected] void QPushButton::focusInEvent(QFocusEvent *e)

        重新实现: QAbstractButton::focusInEvent(QFocusEvent *e).

[override virtual protected] void QPushButton::focusOutEvent(QFocusEvent *e)

       重新实现: QAbstractButton::focusOutEvent(QFocusEvent *e).

[protected] void QPushButton::initStyleOption(QStyleOptionButton *option) const

        使用此QPushButton中的值初始化选项。当子类需要QStyleOptionButton,但不想自己填写所有信息时,此方法非常有用。
        另请参见QStyleOption::initFrom()。

[override virtual protected] void QPushButton::keyPressEvent(QKeyEvent *e)

          重新实现: QAbstractButton::keyPressEvent(QKeyEvent *e).

QMenu *QPushButton::menu() const

        如果没有设置弹出菜单,则返回按钮的相关弹出菜单或nullptr。
        另请参见setMenu()。

[override virtual] QSize QPushButton::minimumSizeHint() const

        重新实现属性的访问函数:QWidget::minimumSizeHint。

[override virtual protected] void QPushButton::paintEvent(QPaintEvent *)

        重新实现: QAbstractButton::paintEvent(QPaintEvent *e).

void QPushButton::setMenu(QMenu *menu)

        将弹出菜单菜单与此按钮相关联。这会将按钮变成菜单按钮,在某些样式中,菜单按钮会在按钮文本的右侧生成一个小三角形。
        菜单的所有权不会转移到按钮上。

                QT助手翻译【QT 5.14】 -----QPushButton-LMLPHP

        一个带有弹出菜单的按钮,显示在Fusion小部件样式中。
        另请参见menu()。

[override virtual] QSize QPushButton::sizeHint() const

        重新实现属性的访问函数:QWidget::sizeHint.

04-15 06:19