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

目录

[1 属性](#1 属性)

[2 公共职能](#2 公共职能)

[3 重新实现的公共功能](#3 重新实现的公共功能)

[4 公用插槽](#4 公用插槽)

[5 受保护的功能](#5 受保护的功能)

[6 保护方法](#6 保护方法)

[7 详细说明](#7 详细说明)


1 属性

自动默认值:bool

此属性保存按钮是否为自动默认按钮

如果此属性设置为true,则该按钮为自动默认按钮。

在某些GUI样式中,默认按钮周围会绘制一个额外的框架,最多3个像素或更多。Qt自动在自动默认按钮周围保持此空间空闲,即,自动默认按钮可能具有稍大的大小提示。

对于具有QDialog父级的按钮,此属性的默认值为true;否则默认为false。

有关默认和自动默认如何交互的详细信息,请参见默认属性。

访问功能:

cpp 复制代码
bool autoDefault() const
void setAutoDefault(bool)

默认值:bool

此属性保存按钮是否为默认按钮

默认和自动默认按钮决定用户在对话框中按下回车键时会发生什么。

当用户按下回车键时,将自动按下此属性设置为true的按钮(即对话框的默认按钮),但有一个例外:如果autoDefault按钮当前具有焦点,则会按下autoDefault按钮。当对话框有autoDefault按钮但没有默认按钮时,按enter键将按下当前具有焦点的autoDefault按钮,或者如果没有按钮具有焦点,则按下焦点链中的下一个autoDefault按钮。

在对话框中,一次只能有一个按钮作为默认按钮。然后,此按钮将显示一个附加框(取决于GUI样式)。

默认按钮行为仅在对话框中提供。当按钮具有焦点时,始终可以通过按空格键从键盘上单击按钮。

如果在对话框可见时,当前默认按钮的默认属性设置为false,则下次对话框中的按钮获得焦点时,将自动分配新的默认值。

此属性的默认值为false。

访问功能:

cpp 复制代码
bool isDefault() const
void setDefault(bool)

平面:bool

此属性保存按钮边框是否凸起

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

访问功能:

cpp 复制代码
bool isFlat() const
void setFlat(bool)

2 公共职能

cpp 复制代码
         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 重新实现的公共功能

cpp 复制代码
virtual QSize  minimumSizeHint() const override
virtual QSize  sizeHint() const override

4 公用插槽

cpp 复制代码
void  showMenu()

5 受保护的功能

cpp 复制代码
void  initStyleOption(QStyleOptionButton *option) const

6 保护方法

cpp 复制代码
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 详细说明

按钮或命令按钮可能是任何图形用户界面中最常用的小部件。按下(单击)按钮可命令计算机执行某些操作或回答问题。典型的按钮有"确定"、"应用"、"取消"、"关闭"、"是"、"否"和"帮助"。

命令按钮是矩形的,通常显示描述其操作的文本标签。快捷键可以通过在文本中的首选字符前面加上"&"来指定。例如

cpp 复制代码
  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设计手册:按钮。

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

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

请注意,您还可以将QPixmap对象作为图标传递(这要归功于C++提供的隐式类型转换)。

cpp 复制代码
QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)

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

cpp 复制代码
QPushButton::QPushButton(QWidget *parent = nullptr)

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

cpp 复制代码
[slot] void QPushButton::showMenu()

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

cpp 复制代码
[virtual] QPushButton::~QPushButton()

释放按钮。

cpp 复制代码
[override virtual protected] bool QPushButton::event(QEvent *e)

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

cpp 复制代码
[override virtual protected] void QPushButton::focusInEvent(QFocusEvent *e)

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

cpp 复制代码
[override virtual protected] void QPushButton::focusOutEvent(QFocusEvent *e)

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

cpp 复制代码
[protected] void QPushButton::initStyleOption(QStyleOptionButton *option) const

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

另请参见QStyleOption::initFrom()。

cpp 复制代码
[override virtual protected] void QPushButton::keyPressEvent(QKeyEvent *e)

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

cpp 复制代码
QMenu *QPushButton::menu() const

如果没有设置弹出菜单,则返回按钮的相关弹出菜单或nullptr。

另请参见setMenu()。

cpp 复制代码
[override virtual] QSize QPushButton::minimumSizeHint() const

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

cpp 复制代码
[override virtual protected] void QPushButton::paintEvent(QPaintEvent *)

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

cpp 复制代码
void QPushButton::setMenu(QMenu *menu)

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

菜单的所有权不会转移到按钮上。

一个带有弹出菜单的按钮,显示在Fusion小部件样式中。

另请参见menu()。

cpp 复制代码
[override virtual] QSize QPushButton::sizeHint() const

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

相关推荐
无夜_11 分钟前
Prototype(原型模式)
开发语言·c++
刘好念30 分钟前
[图形学]smallpt代码详解(1)
c++·计算机图形学
fpcc34 分钟前
并行编程实战——TBB框架的应用之一Supra的基础
c++·并行编程
兵哥工控35 分钟前
MFC工控项目实例二十二主界面计数背景颜色改变
c++·mfc
兵哥工控37 分钟前
MFC工控项目实例二十手动测试界面模拟量输入实时显示
c++·mfc
jyan_敬言1 小时前
【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
linux·运维·服务器·c语言·开发语言·汇编·c++
笑非不退1 小时前
C++ 异步编程 并发编程技术
开发语言·c++
T0uken2 小时前
【QT Qucik】C++交互:接收QML信号
c++·qt·交互
爱写代码的刚子2 小时前
C++知识总结
java·开发语言·c++
martian6652 小时前
QT开发:基于Qt实现的交通信号灯模拟器:实现一个带有倒计时功能的图形界面应用
开发语言·qt