class QPushButton#

QPushButton 小部件提供了一个命令按钮。 更多

Inheritance diagram of PySide6.QtWidgets.QPushButton

继承自: QCommandLinkButton

概要#

属性#

  • autoDefault() - 推动按钮是否是自动默认按钮

  • default() - 推动按钮是否是默认按钮

  • flat() - 按钮边框是否提升

方法#

  • def __init__()

  • def autoDefault()

  • def isDefault()

  • def isFlat()

  • def menu()

  • def setAutoDefault()

  • def setDefault()

  • 定义 setFlat()

  • 定义 setMenu()

虚函数#

#

注意

本说明可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们。

详细说明#

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。

../../_images/windows-pushbutton.png

按钮或命令按钮可能是任何图形用户界面中最常使用的控件。点击按钮可命令计算机执行某些操作,或回答问题。典型按钮包括“确定”,“应用”,“取消”,“关闭”,“是”,“否”和“帮助”。

命令按钮为矩形,通常显示描述其操作的文本标签。可以通过在文本中先加上一个与号来指定快捷键。例如

button = QPushButton("Download", self)

在此示例中,快捷键是 Alt+D。有关详细信息,请参阅 QShortcut 文档(要显示真正的与号,请使用 ‘&&’)。

按钮显示文本标签,以及可选的小图标。这些可以通过构造函数设置,并且可以使用 setText()setIcon() 在后来修改。如果按钮被禁用,将根据 GUI 风格操作文本和图标的显示,使按钮看上去“禁用”。

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

对话框中的命令按钮默认为自动指定为默认按钮,即它们在收到键盘输入焦点时自动变为默认推送按钮。默认按钮是一种当用户在对话框中按下Enter或Return键时被激活的推送按钮。您可以使用 setAutoDefault() 来更改此设置。请注意,自动默认按钮预留了少量额外空间,这是绘制默认按钮指示符所必需的。如果您不想按钮周围有空隙,请调用 setAutoDefault (false)。

由于其核心地位,按钮小部件在过去十年中发展出了许多变化。现在,Microsoft样式指南显示了大约十个不同的Windows推送按钮状态,而文本暗示说,当考虑所有功能组合时,还有几十种更多状态。

最重要的模式或状态是

  • 是否可用(灰色,禁用)。

  • 标准推送按钮、切换推送按钮或菜单按钮。

  • 开启或关闭(仅限于切换推送按钮)。

  • 默认或正常。对话框中的默认按钮通常可以使用Enter或Return键来“点击”。

  • 是否自动重复。

  • 是否按下。

一般而言,当应用程序或对话框窗口在用户点击时执行操作(如应用、取消、关闭和帮助)且小部件应有宽阔的矩形形状和文本标签时,请使用推送按钮。小按钮,通常是方形的,用于更改窗口状态而不是执行操作(如QFileDialog右上角的按钮)不是命令按钮,而是工具按钮。Qt为这些按钮提供了一个特殊的类( QToolButton )。

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

注意

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

命令按钮的一种变体是菜单按钮。它们提供不止一个命令,因为当它们被点击时,会弹出选项菜单。请使用setMenu()方法将弹出式菜单关联到一个推送按钮。

其他按钮类别是选项按钮(请见 QRadioButton )和复选框(请见 QCheckBox )。

在 Qt 中,基类 QAbstractButton 提供了大部分模式和其它 API,而 QPushButton 提供了 GUI 逻辑。更多关于 API 的信息,请参阅 QAbstractButton

注意

当使用 from __feature__ import true_property 时可以直接使用属性,否则通过访问函数。

property autoDefaultᅟ: bool#

此属性表示单选按钮是否是自动默认按钮。

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

在某些 GUI 风格中,默认按钮会绘制额外的边框,宽达 3 像素或更多。Qt 会自动将这个空间留出,即自动默认按钮可能有一个更大的大小提示。

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

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

访问函数
property defaultᅟ: bool#

此属性表示单选按钮是否是默认按钮。

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

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

在对话框中,一次只能有一个单选按钮是默认按钮。这个按钮会显示额外的边框(取决于 GUI 风格)。

默认按钮行为仅在对话框中提供。按钮可以通过按下空格键在按钮获得焦点时始终通过键盘点击。

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

此属性的默认值为false。

访问函数
propertyflat: bool

此属性表示按钮边框是否凸起。

此属性的默认值为false。如果设置此属性,大多数样式将不会绘制按钮背景,除非按钮被按下。可以使用setAutoFillBackground()来确保使用QPalette::Button画笔填充背景。

访问函数
__init__([parent=None])
参数

parentQWidget

创建一个没有文本和parent的按钮。

__init__(icon, text[, parent=None])
参数

创建一个带有icontext,以及parent的按钮。

注意,您还可以将QPixmap对象作为图标传递(多亏了C++提供的隐式类型转换)。

__init__(text[, parent=None])
参数

创建一个具有父级parent和文本text的按钮。

autoDefault()
返回类型

bool

参阅也

setAutoDefault()

属性autoDefault的获取器。

initStyleOption(option
参数

optionQStyleOptionButton

使用此QPushButton的值来初始化 option。这种方法对于子类很有用,当它们需要一个 QStyleOptionButton但不想自己填写所有信息时。

参阅也

initFrom()

isDefault()
返回类型

bool

获取属性defaultᅟ的值。

isFlat()
返回类型

bool

获取属性flatᅟ的值。

menu()
返回类型

QMenu

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

参阅也

setMenu()

setAutoDefault(arg__1)
参数

arg__1 – bool

参阅也

autoDefault()

设置属性autoDefaultᅟ的值。

setDefault(arg__1)
参数

arg__1 – bool

参阅也

isDefault()

设置属性defaultᅟ的值。

setFlat(arg__1)
参数

arg__1 – bool

参阅也

isFlat()

设置属性flatᅟ的值。

setMenu(menu)
参数

menuQMenu

将弹出菜单menu与这个按钮关联。这会将按钮转换为菜单按钮,在某些样式下,在按钮文本的右侧将出现一个小的三角形。

菜单的所有权不会转让给按钮。

../../_images/fusion-pushbutton-menu.png

Fusion widget style中显示带有弹出菜单的按钮。

参阅也

menu()

showMenu()

显示(弹出)相关弹窗菜单。如果没有此菜单,该函数不会执行任何操作。此函数将继续运行直到用户关闭弹窗菜单。