- class QAbstractButton#
QAbstractButton 类是按钮小部件的抽象基类,提供了按钮的共同功能。 更多信息…
继承者:
QToolButton
、QRadioButton
、QPushButton
、QCommandLinkButton
、QCheckBox
概要#
属性#
autoExclusive属性
- 是否启用自动互斥autoRepeat属性
- 是否启用自动重复autoRepeatDelay属性
- 自动重复的初始延迟autoRepeatInterval
- 自动重复的间隔checkable
- 按钮是否可以复选checked
- 按钮是否被选中down
- 按钮是否被按下icon
- 按钮上显示的图标iconSize
- 此按钮使用的图标大小shortcut
- 与按钮相关联的快捷键text
- 按钮上显示的文本
方法#
def
__init__()
def
autoExclusive()
def
autoRepeat()
def
group()
def
icon()
def
iconSize()
def
isCheckable()
def
isChecked()
def
isDown()
def
setAutoRepeat()
def
setCheckable()
def
setDown()
def
setIcon()
def
setShortcut()
def
setText()
def
shortcut()
def
text()
虚函数#
def
checkStateSet()
def
hitButton()
def
nextCheckState()
槽函数#
def
animateClick()
def
click()
def
setChecked()
def
setIconSize()
def
toggle()
信号#
def
clicked()
def
pressed()
def
released()
def
toggled()
说明
本文档可能包含从C++自动翻译成Python的代码片段。我们欢迎使用对这些片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来通知我们。
详细说明#
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
此类实现了抽象按钮。本类的子类处理用户操作,并指定如何绘制按钮。
QAbstractButton
为推按钮和可检查(切换)按钮提供支持。可检查按钮在QRadioButton
和QCheckBox
类中实现。推按钮在QPushButton
和QToolButton
类中实现;如果需要,这些也提供切换行为。任何按钮都可以显示包含文本和图标的标签。使用
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提供的大部分按钮(如:
QPushButton
、QToolButton
、QCheckBox
、和QRadioButton
)都可以显示文本和图标。可以使用
setDefault()
和setAutoDefault()
方法使按钮成为对话框中的默认按钮。QAbstractButton
为按钮提供了大部分使用状态。isDown()
指示按钮是否被按下。isChecked()
指示按钮是否被选中。只有可复选的按钮可以被选中或取消选中(见下文)。isEnabled()
指示按钮是否可以被用户按下。说明
与其它小部件不同,从
QAbstractButton
派生出的按钮即使在禁用状态下也能接受鼠标事件和上下文菜单事件。setAutoRepeat()
设置按钮是否会在用户按下时自动重复。`autoRepeatDelay
`和`autoRepeatInterval
`定义了自动重复的方式。setCheckable()
设置按钮是否是一个切换按钮。
methods
isDown()
和isChecked()
的区别如下。当用户点击切换按钮来勾选它时,按钮首先处于 按下 状态,然后释放到 勾选 状态。当用户再次点击它(取消勾选它)时,按钮首先移动到 按下 状态,然后到 未勾选 状态(methodsisChecked()
和isDown()
都为 false)。QAbstractButton
类提供四个信号。pressed()
信号在鼠标左键在按钮内部按下时发出。released()
信号在鼠标左键释放时发出。clicked()
信号在按钮被按下然后释放、当按下快捷键或调用click()
或animateClick()
时发出。toggled()
信号在切换按钮的状态改变时发出。
要继承
QAbstractButton
,您必须至少重新实现paintEvent()
来绘制按钮的轮廓和文本或图象。通常还建议实现sizeHint()
,有时还会实现hitButton()
(以确定按钮点击是否在按钮内部)。对于具有超过两个状态(如三态按钮)的按钮,您还需要重新实现checkStateSet()
和nextCheckState()
。请参阅
说明
当使用
from __feature__ import true_property
时,可以直接使用属性,否则可以通过访问器函数进行使用。- 属性autoExclusiveᅟ: bool#
该属性表示是否启用了自动排他性。
如果启用了自动排他性,同一父窗口下的可选中按钮将表现得像属于同一个排他性按钮组的一部分。在排他性按钮组中,任何时刻只能选中一个按钮;选中另一个按钮会自动取消选中之前的按钮。
该属性对按钮组内的按钮没有影响。
默认情况下,autoExclusive属性是关闭的,除非是单选按钮。
请参阅
- 属性autoRepeatᅟ: bool#
该属性表示是否启用了自动重复。
如果启用了自动重复,则在按钮按下时,
pressed()
,released()
,以及clicked()
信号会以固定时间间隔发出。默认情况下,autoRepeat属性是关闭的。初始延迟和重复间隔以毫秒为单位,通过autoRepeatDelay
和autoRepeatInterval
定义。注意:如果按钮是由快捷键按下,则自动重复将由系统计时,而不是该类。在这种情况下,
pressed()
,released()
和clicked()
信号将像正常情况一样发出。- 属性autoRepeatDelayᅟ: int#
该属性表示自动重复的初始延迟。
如果
autoRepeat
被启用,则autoRepeatDelay定义了自动重复开始前的初始延迟时间(以毫秒计)。- 属性 autoRepeatInterval: int#
此属性存储自动重复的间隔。
如果
autoRepeat
被启用,则autoRepeatInterval定义了自动重复间隔的长度(毫秒)。- 属性 checkable: bool#
此属性存储按钮是否可勾选。
默认情况下,按钮不可勾选。
请参阅
checked
- 属性 checked: bool#
此属性存储按钮是否被勾选。
只有可勾选的按钮才能被勾选。默认情况下,按钮未勾选。
请参阅
checkable
- 访问函数
- 属性 down: bool#
此属性存储按钮是否被按下。
如果此属性为
true
,则按钮被按下。如果将此属性设置为true,则不会发出信号pressed
和clicked
。默认值为false。此属性存储按钮上显示的图标。
图标的默认大小由GUI样式定义,但可以通过设置属性
iconSize
进行调整。此属性保存用于此按钮的图标大小。
默认大小由GUI样式定义。这是图标的最大大小。较小的图标不会被放大。
- 访问函数
- 属性 shortcut: QKeySequence#
此属性保存与按钮关联的快捷键。
- 访问函数
- 属性 text: str#
此属性保存显示在按钮上的文本。
如果按钮没有文本,则text()函数将返回空字符串。
如果文本中包含 Ampersand 字符(’&’),则自动为其创建快捷键。‘&’ 后面跟着的字符将被用作快捷键。如果没有通过文本定义快捷键,则将覆盖或清除任何先前定义的快捷键。有关详细信息,请参阅QShortcut文档。要显示实际的 ampersand,请使用 ‘&&’。
没有默认的文本。
构建一个包含
parent
的抽象按钮。- animateClick()#
执行动画点击:按钮立即按下,100ms后释放。
在按钮释放之前再次调用此函数会重置释放定时器。
与点击关联的所有信号都会适当地发出。
如果按钮没有启用(《PySide6.QtWidgets.QWidget.setEnabled()`),则此函数不会做任何事情。
请参阅
- autoExclusive()#
- 返回类型:
bool
属性
autoExclusiveᅟ
的获取器。- autoRepeat()#
- 返回类型:
bool
请参阅
属性
autoRepeatᅟ
的获取器。- autoRepeatDelay()#
- 返回类型:
int
属性
autoRepeatDelay
的获取器。- autoRepeatInterval()#
- 返回类型:
int
属性
autoRepeatInterval
的获取器。- checkStateSet()#
这是一个虚处理程序,当使用
setChecked
时会被调用,除非它是在nextCheckState
内部被调用。它允许子类重置它们的中间按钮状态。请参阅
- click()#
执行点击操作。
所有与点击相关的基本信号都会按适当的方式发出。如果按钮是可勾选的,按钮的状态将切换。
如果按钮没有启用(《PySide6.QtWidgets.QWidget.setEnabled()`),则此函数不会做任何事情。
请参阅
- clicked([checked=false])#
- 参数:
checked – bool
当按钮被激活(即,在鼠标指针在按钮内按下然后释放)时,当按下快捷键,或者当调用
click
或animateClick
时,发出此信号。值得注意的是,如果你调用setDown
、setChecked
或toggle
,则不会发出此信号。如果按钮是可勾选的,当按钮被勾选时,
checked
为真,当按钮未被勾选时为假。请参阅
pressed
released
toggled
- group()#
- 返回类型:
返回此按钮所属的组。
如果按钮不是任何
QButtonGroup
的成员,则此函数返回None
。请参阅
如果pos在可点击按钮矩形内部,则返回
true
;否则返回false
。默认情况下,可点击区域是整个小部件。子类可以重写此函数以支持不同形状和大小的可点击区域。
该属性
icon
的获取器。- iconSize()#
- 返回类型:
请参阅
该属性
iconSize
的获取器。- isCheckable()#
- 返回类型:
bool
该属性
checkable
的获取器。- isChecked()#
- 返回类型:
bool
该属性
checked
的获取器。- isDown()#
- 返回类型:
bool
该属性
down
的获取器。- nextCheckState()#
当按钮被点击时,这个虚函数将被调用。默认实现会如果按钮
isCheckable
调用setChecked
(!isChecked()
)。这允许子类实现中间按钮状态。请参阅
- pressed()#
当按钮按下时,会发出此信号。
请参阅
- released()#
当按钮释放时,会发出此信号。
- setAutoExclusive(arg__1)#
- 参数:
arg__1 – bool
请参阅
属性
autoExclusiveᅟ
的设置器。- setAutoRepeat(arg__1)#
- 参数:
arg__1 – bool
请参阅
属性
autoRepeatᅟ
的设置器。- setAutoRepeatDelay(arg__1)#
- 参数:
arg__1 – int
属性
autoRepeatDelayᅟ
的设置器。- setAutoRepeatInterval(arg__1)#
- 参数:
arg__1 – int
属性
autoRepeatIntervalᅟ
的设置器。- setCheckablearg__1#
- 参数:
arg__1 – bool
请参阅
属性
checkableᅟ
的设置器。- setCheckedarg__1#
- 参数:
arg__1 – bool
请参阅
属性
checkedᅟ
的设置器。设置属性
down
的值。设置属性
icon
的值。设置属性
iconSize
的值。- setShortcut(key)
- 参数:
key –
QKeySequence
请参阅
设置属性
shortcut
的值。设置属性
text
的值。- shortcut()#
- 返回类型:
请参阅
属性
shortcut
的获取器。属性
text
的获取器。- toggle()#
切换可选中按钮的状态。
请参阅
checked
- toggled(checked)#
- 参数:
checked – bool
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
每当可勾选按钮改变其状态时,就会发射此信号。
checked
为true时表示按钮被勾选,为false时表示按钮未被勾选。这可能是用户操作的结果,
click()
槽激活,或因为调用了setChecked()
。在发射此信号之前,排他性按钮组的按钮状态将被更新。这意味着槽可以针对状态发生变化的组中的按钮发出的“关闭”信号或“开启”信号执行操作。
例如,可以使用以下模式实现一个只响应新勾选按钮发出的信号但忽略未被勾选按钮发出的信号的槽
def reactToToggle(self, checked): if checked: # Examine the new button states. ...
可以使用
QButtonGroup
类来创建按钮组,并通过buttonClicked()
信号监测按钮状态的更新。请参阅
checked
clicked()
属性
checkedᅟ
的通知信号。