PySide6.QtWidgets.QPushButton

class QPushButton

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

PySide6.QtWidgets.QPushButton 的继承图

继承者: QCommandLinkButton

概要

属性

方法

虚拟方法

插槽

注意

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

详细描述

警告

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

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

按钮,或命令按钮,可能是任何图形用户界面中最常用的小部件。按下(点击)按钮以命令计算机执行某些操作,或回答问题。典型的按钮有OK、Apply、Cancel、Close、Yes、No和Help。

命令按钮是矩形的,通常显示描述其操作的文本标签。可以通过在文本中使用&符号来指定快捷键。例如:

button = QPushButton("Download", self)

在这个例子中,快捷键是Alt+D。详情请参阅QShortcut文档(要显示实际的&符号,请使用‘&&’)。

按钮显示一个文本标签,并且可以选择性地显示一个小图标。这些可以通过构造函数设置,并且稍后可以使用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

注意

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

property autoDefaultᅟ: bool

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

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

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

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

请参阅default属性,了解default和auto-default如何交互的详细信息。

Access functions:
property defaultᅟ: bool

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

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

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

在对话框中,一次只能有一个按钮作为默认按钮。这个按钮会显示一个额外的边框(取决于GUI样式)。

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

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

此属性的默认值为 false。

Access functions:
property flatᅟ: bool

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

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

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

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

__init__(text[, parent=None])
Parameters:
  • 文本 – str

  • parentQWidget

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

__init__(icon, text[, parent=None])
Parameters:

构造一个带有图标文本的按钮,以及一个父级

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

autoDefault()
Return type:

布尔

另请参阅

setAutoDefault()

属性 autoDefaultᅟ 的获取器。

initStyleOption(option)
Parameters:

选项QStyleOptionButton

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

另请参阅

initFrom()

isDefault()
Return type:

布尔

属性 defaultᅟ 的获取器。

isFlat()
Return type:

布尔

属性 flatᅟ 的获取器。

menu()
Return type:

QMenu

返回按钮关联的弹出菜单,如果未设置弹出菜单,则返回None

另请参阅

setMenu()

setAutoDefault(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

autoDefault()

属性 autoDefaultᅟ 的设置器。

setDefault(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isDefault()

属性 defaultᅟ 的设置器。

setFlat(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isFlat()

属性 flatᅟ 的设置器。

setMenu(menu)
Parameters:

菜单QMenu

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

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

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

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

另请参阅

menu()

showMenu()

显示(弹出)关联的弹出菜单。如果没有这样的菜单,此函数不执行任何操作。此函数在用户关闭弹出菜单之前不会返回。