PySide6.QtWidgets.QAbstractButton¶
- 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
)都可以显示text
和icons
。可以通过
setDefault()
和setAutoDefault()
使按钮成为对话框中的默认按钮。QAbstractButton
提供了用于按钮的大多数状态:isDown()
表示按钮是否被按下。isChecked()
表示按钮是否被选中。只有可选的按钮才能被选中和取消选中(见下文)。isEnabled()
表示按钮是否可以被用户按下。注意
与其他小部件不同,从
QAbstractButton
派生的按钮在被禁用时仍然接受鼠标和上下文菜单事件。setAutoRepeat()
设置按钮在用户按住时是否会自动重复。autoRepeatDelay
和autoRepeatInterval
定义了自动重复的方式。setCheckable()
设置按钮是否为切换按钮。
isDown()
和isChecked()
的区别如下。当用户点击切换按钮以选中它时,按钮首先被按下,然后释放到选中状态。当用户再次点击它(以取消选中)时,按钮首先移动到按下状态,然后移动到未选中状态(isChecked()
和isDown()
都为 false)。QAbstractButton
提供了四个信号:pressed()
当鼠标光标在按钮内部时按下鼠标左键时发出。released()
当鼠标左键释放时发出。clicked()
在按钮首次按下并释放、快捷键被输入时,或当click()
或animateClick()
被调用时发出。toggled()
当切换按钮的状态发生变化时发出。
要子类化
QAbstractButton
,你必须至少重新实现paintEvent()
来绘制按钮的轮廓及其文本或图片。通常建议也重新实现sizeHint()
,有时还需要重新实现hitButton()
(以确定按钮按下是否在按钮内)。对于具有两种以上状态的按钮(如三态按钮),你还必须重新实现checkStateSet()
和nextCheckState()
。另请参阅
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property autoExclusiveᅟ: bool¶
此属性表示是否启用了自动排他性。
如果启用了自动排他性,属于同一父部件的小部件中的可选中按钮的行为就像它们属于同一个排他性按钮组一样。在一个排他性按钮组中,任何时候只能选中一个按钮;选中另一个按钮会自动取消之前选中的按钮。
该属性对属于按钮组的按钮没有影响。
默认情况下,autoExclusive 是关闭的,除了单选按钮。
另请参阅
- Access functions:
- property autoRepeatᅟ: bool¶
此属性表示是否启用了autoRepeat。
如果启用了autoRepeat,那么当按钮被按下时,
pressed()
、released()
和clicked()
信号会以固定的时间间隔发出。autoRepeat默认是关闭的。初始延迟和重复间隔由autoRepeatDelay
和autoRepeatInterval
以毫秒为单位定义。注意:如果按钮通过快捷键被按下,则自动重复功能由系统启用和计时,而不是由此类控制。
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。此属性保存按钮上显示的图标。
图标的默认大小由GUI样式定义,但可以通过设置
iconSize
属性进行调整。此属性保存用于此按钮的图标大小。
默认大小由GUI样式定义。这是图标的最大尺寸。较小的图标将不会被放大。
- Access functions:
- property shortcutᅟ: QKeySequence¶
此属性保存与按钮关联的助记符。
- Access functions:
- property textᅟ: str¶
此属性保存按钮上显示的文本。
如果按钮没有文本,text()函数将返回一个空字符串。
如果文本包含一个&符号(’&’),则会自动为其创建一个快捷键。‘&’后面的字符将用作快捷键。如果文本没有定义快捷键,则任何先前的快捷键将被覆盖或清除。详情请参阅QShortcut文档。要显示实际的&符号,请使用‘&&’。
没有默认文本。
构造一个带有
parent
的抽象按钮。- animateClick()¶
执行一个动画点击:按钮立即被按下,并在100毫秒后释放。
在按钮释放之前再次调用此函数会重置释放计时器。
与点击相关的所有信号都会适当地发出。
如果按钮是
PySide6.QtWidgets.QWidget.setEnabled()
,则此函数不执行任何操作另请参阅
- autoExclusive()¶
- Return type:
布尔
另请参阅
属性
autoExclusiveᅟ
的获取器。- autoRepeat()¶
- Return type:
布尔
另请参阅
属性
autoRepeatᅟ
的获取器。- autoRepeatDelay()¶
- Return type:
整数
另请参阅
属性
autoRepeatDelayᅟ
的获取器。- autoRepeatInterval()¶
- Return type:
整数
属性
autoRepeatIntervalᅟ
的获取器。- checkStateSet()¶
当使用
setChecked()
时,会调用此虚拟处理程序,除非它是从nextCheckState()
内部调用的。它允许子类重置其中间按钮状态。另请参阅
- click()¶
执行点击操作。
所有与点击相关的常规信号都会适当地发出。如果按钮是可选的,按钮的状态将被切换。
如果按钮是
PySide6.QtWidgets.QWidget.setEnabled()
,则此函数不执行任何操作另请参阅
- clicked([checked=false])¶
- Parameters:
checked – 布尔值
当按钮被激活时(即,当鼠标光标在按钮内按下然后释放时),当快捷键被键入时,或者当调用
click()
或animateClick()
时,会发出此信号。值得注意的是,如果你调用setDown()
、setChecked()
或toggle()
,则不会发出此信号。如果按钮是可选的,
checked
为 true 表示按钮被选中,为 false 表示按钮未被选中。另请参阅
- group()¶
- Return type:
返回此按钮所属的组。
如果按钮不是任何
QButtonGroup
的成员,此函数返回None
。另请参阅
如果
pos
在可点击按钮矩形内,则返回true
;否则返回false
。默认情况下,可点击区域是整个小部件。子类可以重新实现此函数以支持不同形状和大小的可点击区域。
属性
iconᅟ
的获取器。- iconSize()¶
- Return type:
另请参阅
属性
iconSizeᅟ
的获取器。- isCheckable()¶
- Return type:
布尔
属性
checkableᅟ
的获取器。- isChecked()¶
- Return type:
布尔
属性
checkedᅟ
的获取器。- isDown()¶
- Return type:
布尔
属性
downᅟ
的获取器。- nextCheckState()¶
当按钮被点击时,会调用此虚拟处理程序。默认实现会调用
setChecked
(!isChecked()
) 如果按钮isCheckable()
。它允许子类实现中间按钮状态。另请参阅
- pressed()¶
当按钮被按下时,会发出此信号。
另请参阅
- released()¶
当按钮被释放时,会发出此信号。
- setAutoExclusive(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
autoExclusiveᅟ
的设置器。- setAutoRepeat(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
autoRepeatᅟ
的设置器。- setAutoRepeatDelay(arg__1)¶
- Parameters:
arg__1 – 整数
另请参阅
属性
autoRepeatDelayᅟ
的设置器。- setAutoRepeatInterval(arg__1)¶
- Parameters:
arg__1 – 整数
另请参阅
属性
autoRepeatIntervalᅟ
的设置器。- setCheckable(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
checkableᅟ
的设置器。- setChecked(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
checkedᅟ
的设置器。属性
downᅟ
的设置器。属性
iconᅟ
的设置器。属性
iconSizeᅟ
的设置器。- setShortcut(key)
- Parameters:
键 –
QKeySequence
另请参阅
属性
shortcutᅟ
的设置器。属性
textᅟ
的设置器。- shortcut()¶
- Return type:
另请参阅
属性
shortcutᅟ
的获取器。属性
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ᅟ
的通知信号。