PySide6.QtWidgets.QAbstractButton

class QAbstractButton

QAbstractButton 类是按钮小部件的抽象基类,提供了按钮的通用功能。更多

PySide6.QtWidgets.QAbstractButton 的继承图

继承自: QToolButton, QRadioButton, QPushButton, QCommandLinkButton, QCheckBox

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

这个类实现了一个抽象按钮。该类的子类处理用户操作,并指定按钮的绘制方式。

QAbstractButton 提供了对按钮和可选中(切换)按钮的支持。可选中按钮在 QRadioButtonQCheckBox 类中实现。按钮在 QPushButtonQToolButton 类中实现;如果需要,这些类也提供切换行为。

任何按钮都可以显示包含文本和图标的标签。setText() 设置文本;setIcon() 设置图标。如果按钮被禁用,其标签会改变,使按钮呈现“禁用”外观。

如果按钮是一个包含“&”符号的文本按钮,QAbstractButton 会自动创建一个快捷键。例如:

button = QPushButton(tr("Rock and Roll"), self)

Alt+C 快捷键被分配给按钮,即当用户按下 Alt+C 时,按钮将调用 animateClick()。详情请参阅 QShortcut 文档。要显示实际的 & 符号,请使用 ‘&&’。

你也可以使用setShortcut()函数设置自定义快捷键。这对于没有任何文本的按钮特别有用,因此无法拥有任何自动快捷键。

button.setIcon(QIcon(":/images/print.png"))
button.setShortcut(tr("Alt+F7"))

Qt提供的所有按钮(QPushButtonQToolButtonQCheckBoxQRadioButton)都可以显示texticons

可以通过setDefault()setAutoDefault()使按钮成为对话框中的默认按钮。

QAbstractButton 提供了用于按钮的大多数状态:

isDown()isChecked() 的区别如下。当用户点击切换按钮以选中它时,按钮首先被按下,然后释放到选中状态。当用户再次点击它(以取消选中)时,按钮首先移动到按下状态,然后移动到未选中状态(isChecked()isDown() 都为 false)。

QAbstractButton 提供了四个信号:

  1. pressed() 当鼠标光标在按钮内部时按下鼠标左键时发出。

  2. released() 当鼠标左键释放时发出。

  3. clicked() 在按钮首次按下并释放、快捷键被输入时,或当 click()animateClick() 被调用时发出。

  4. toggled() 当切换按钮的状态发生变化时发出。

要子类化 QAbstractButton,你必须至少重新实现 paintEvent() 来绘制按钮的轮廓及其文本或图片。通常建议也重新实现 sizeHint(),有时还需要重新实现 hitButton()(以确定按钮按下是否在按钮内)。对于具有两种以上状态的按钮(如三态按钮),你还必须重新实现 checkStateSet()nextCheckState()

另请参阅

QButtonGroup

注意

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

property autoExclusiveᅟ: bool

此属性表示是否启用了自动排他性。

如果启用了自动排他性,属于同一父部件的小部件中的可选中按钮的行为就像它们属于同一个排他性按钮组一样。在一个排他性按钮组中,任何时候只能选中一个按钮;选中另一个按钮会自动取消之前选中的按钮。

该属性对属于按钮组的按钮没有影响。

默认情况下,autoExclusive 是关闭的,除了单选按钮。

另请参阅

QRadioButton

Access functions:
property autoRepeatᅟ: bool

此属性表示是否启用了autoRepeat。

如果启用了autoRepeat,那么当按钮被按下时,pressed()released()clicked()信号会以固定的时间间隔发出。autoRepeat默认是关闭的。初始延迟和重复间隔由autoRepeatDelayautoRepeatInterval以毫秒为单位定义。

注意:如果按钮通过快捷键被按下,则自动重复功能由系统启用和计时,而不是由此类控制。pressed()released()clicked()信号将像正常情况下一样发出。

Access functions:
property autoRepeatDelayᅟ: int

此属性保存自动重复的初始延迟。

如果启用了autoRepeat,那么autoRepeatDelay定义了自动重复开始前的初始延迟时间(以毫秒为单位)。

Access functions:
property autoRepeatIntervalᅟ: int

此属性保存自动重复的间隔。

如果启用了autoRepeat,那么autoRepeatInterval定义了自动重复间隔的长度,单位为毫秒。

Access functions:
property checkableᅟ: bool

此属性表示按钮是否可选中。

默认情况下,按钮是不可选中的。

另请参阅

checked

Access functions:
property checkedᅟ: bool

此属性表示按钮是否被选中。

只有可检查的按钮才能被选中。默认情况下,按钮是未选中的。

另请参阅

checkable

Access functions:
property downᅟ: bool

此属性表示按钮是否被按下。

如果此属性为true,则按钮被按下。如果将属性设置为true,则不会发出pressed()clicked()信号。默认值为false。

Access functions:
property iconᅟ: QIcon

此属性保存按钮上显示的图标。

图标的默认大小由GUI样式定义,但可以通过设置iconSize属性进行调整。

Access functions:
property iconSizeᅟ: QSize

此属性保存用于此按钮的图标大小。

默认大小由GUI样式定义。这是图标的最大尺寸。较小的图标将不会被放大。

Access functions:
property shortcutᅟ: QKeySequence

此属性保存与按钮关联的助记符。

Access functions:
property textᅟ: str

此属性保存按钮上显示的文本。

如果按钮没有文本,text()函数将返回一个空字符串。

如果文本包含一个&符号(’&’),则会自动为其创建一个快捷键。‘&’后面的字符将用作快捷键。如果文本没有定义快捷键,则任何先前的快捷键将被覆盖或清除。详情请参阅QShortcut文档。要显示实际的&符号,请使用‘&&’。

没有默认文本。

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

父级QWidget

构造一个带有parent的抽象按钮。

animateClick()

执行一个动画点击:按钮立即被按下,并在100毫秒后释放。

在按钮释放之前再次调用此函数会重置释放计时器。

与点击相关的所有信号都会适当地发出。

如果按钮是PySide6.QtWidgets.QWidget.setEnabled(),则此函数不执行任何操作

另请参阅

click()

autoExclusive()
Return type:

布尔

另请参阅

setAutoExclusive()

属性 autoExclusiveᅟ 的获取器。

autoRepeat()
Return type:

布尔

另请参阅

setAutoRepeat()

属性 autoRepeatᅟ 的获取器。

autoRepeatDelay()
Return type:

整数

另请参阅

setAutoRepeatDelay()

属性 autoRepeatDelayᅟ 的获取器。

autoRepeatInterval()
Return type:

整数

属性 autoRepeatIntervalᅟ 的获取器。

checkStateSet()

当使用setChecked()时,会调用此虚拟处理程序,除非它是从nextCheckState()内部调用的。它允许子类重置其中间按钮状态。

另请参阅

nextCheckState()

click()

执行点击操作。

所有与点击相关的常规信号都会适当地发出。如果按钮是可选的,按钮的状态将被切换。

如果按钮是PySide6.QtWidgets.QWidget.setEnabled(),则此函数不执行任何操作

另请参阅

animateClick()

clicked([checked=false])
Parameters:

checked – 布尔值

当按钮被激活时(即,当鼠标光标在按钮内按下然后释放时),当快捷键被键入时,或者当调用click()animateClick()时,会发出此信号。值得注意的是,如果你调用setDown()setChecked()toggle(),则不会发出此信号。

如果按钮是可选的,checked 为 true 表示按钮被选中,为 false 表示按钮未被选中。

group()
Return type:

QButtonGroup

返回此按钮所属的组。

如果按钮不是任何QButtonGroup的成员,此函数返回None

另请参阅

QButtonGroup

hitButton(pos)
Parameters:

posQPoint

Return type:

布尔

如果 pos 在可点击按钮矩形内,则返回 true;否则返回 false

默认情况下,可点击区域是整个小部件。子类可以重新实现此函数以支持不同形状和大小的可点击区域。

icon()
Return type:

QIcon

另请参阅

setIcon()

属性 iconᅟ 的获取器。

iconSize()
Return type:

QSize

另请参阅

setIconSize()

属性 iconSizeᅟ 的获取器。

isCheckable()
Return type:

布尔

属性 checkableᅟ 的获取器。

isChecked()
Return type:

布尔

属性 checkedᅟ 的获取器。

isDown()
Return type:

布尔

属性 downᅟ 的获取器。

nextCheckState()

当按钮被点击时,会调用此虚拟处理程序。默认实现会调用 setChecked (! isChecked() ) 如果按钮 isCheckable() 。它允许子类实现中间按钮状态。

另请参阅

checkStateSet()

pressed()

当按钮被按下时,会发出此信号。

另请参阅

released() clicked()

released()

当按钮被释放时,会发出此信号。

setAutoExclusive(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

autoExclusive()

属性 autoExclusiveᅟ 的设置器。

setAutoRepeat(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

autoRepeat()

属性 autoRepeatᅟ 的设置器。

setAutoRepeatDelay(arg__1)
Parameters:

arg__1 – 整数

另请参阅

autoRepeatDelay()

属性 autoRepeatDelayᅟ 的设置器。

setAutoRepeatInterval(arg__1)
Parameters:

arg__1 – 整数

另请参阅

autoRepeatInterval()

属性 autoRepeatIntervalᅟ 的设置器。

setCheckable(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isCheckable()

属性 checkableᅟ 的设置器。

setChecked(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isChecked()

属性 checkedᅟ 的设置器。

setDown(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isDown()

属性 downᅟ 的设置器。

setIcon(icon)
Parameters:

图标QIcon

另请参阅

icon()

属性 iconᅟ 的设置器。

setIconSize(size)
Parameters:

大小QSize

另请参阅

iconSize()

属性 iconSizeᅟ 的设置器。

setShortcut(key)
Parameters:

Key

setShortcut(key)
Parameters:

QKeySequence

另请参阅

shortcut()

属性 shortcutᅟ 的设置器。

setText(text)
Parameters:

文本 – str

另请参阅

text()

属性 textᅟ 的设置器。

shortcut()
Return type:

QKeySequence

另请参阅

setShortcut()

属性 shortcutᅟ 的获取器。

text()
Return type:

字符串

另请参阅

setText()

属性 textᅟ 的获取器。

toggle()

切换可选中按钮的状态。

另请参阅

checked

toggled(checked)
Parameters:

checked – 布尔值

警告

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

每当可选中按钮改变其状态时,会发出此信号。如果按钮被选中,checked 为 true;如果按钮未被选中,则为 false。

这可能是用户操作的结果,click() 插槽激活,或者因为调用了 setChecked()

在发出此信号之前,独占按钮组中的按钮状态会被更新。这意味着插槽可以对组中状态已更改的按钮发出的“关闭”信号或“打开”信号进行操作。

例如,一个对新选中的按钮发出的信号做出反应但忽略未选中按钮发出的信号的槽可以使用以下模式实现:

def reactToToggle(self, checked):

   if checked:
      # Examine the new button states.
      ...

可以使用QButtonGroup类创建按钮组,并通过buttonClicked()信号监视按钮状态的更新。

另请参阅

checked clicked()

属性 checkedᅟ 的通知信号。