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.

相关推荐
一丝晨光39 分钟前
gcc 1.c和g++ 1.c编译阶段有什么区别?如何知道g++编译默认会定义_GNU_SOURCE?
c语言·开发语言·c++·gnu·clang·gcc·g++
汉克老师1 小时前
GESP4级考试语法知识(贪心算法(四))
开发语言·c++·算法·贪心算法·图论·1024程序员节
姆路2 小时前
QT中使用图表之QChart绘制动态折线图
c++·qt
何曾参静谧2 小时前
「QT」文件类 之 QDir 目录类
开发语言·qt
何曾参静谧2 小时前
「QT」文件类 之 QTemporaryDir 临时目录类
开发语言·qt
秋说3 小时前
【数据结构 | C++】整型关键字的平方探测法散列
数据结构·c++·算法
huangjiazhi_5 小时前
QTcpSocket 服务端和客户端
开发语言·qt
槿花Hibiscus5 小时前
C++基础:Pimpl设计模式的实现
c++·设计模式
黑不拉几的小白兔6 小时前
PTA部分题目C++重练
开发语言·c++·算法
写bug的小屁孩6 小时前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3