QButtonGroup 类

QButtonGroup 类提供了一个容器以组织按钮小部件的组。更多...

头文件 #include <QButtonGroup>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QObject

属性

公共函数

QButtonGroup(QObject *parent = nullptr)
virtual~QButtonGroup()
voidaddButton(QAbstractButton *button, int id = -1)
QAbstractButton *button(int id) const
QList<QAbstractButton *>buttons() const
QAbstractButton *checkedButton() const
intcheckedId() const
boolexclusive() const
intid(QAbstractButton *button) const
voidremoveButton(QAbstractButton *button)
voidsetExclusive(bool)
voidsetId(QAbstractButton *button, int id)

信号

voidbuttonClicked(QAbstractButton *button)
voidbuttonPressed(QAbstractButton *button)
voidbuttonReleased(QAbstractButton *button)
voidbuttonToggled(QAbstractButton *button, bool checked)
voididClicked(int id)
voididPressed(int id)
voididReleased(int id)
voididToggled(int id, bool checked)

详细描述

QButtonGroup 提供了一个抽象容器,可以将按钮小部件放入其中。它不提供容器的外观表示(请参阅 QGroupBox 以获取容器小部件),而代之以管理组中每个按钮的状态。

一个可切换的按钮组(exclusive)会关闭除了被点击之外的所有可检查(可切换)按钮。默认情况下,按钮组是可切换的。按钮组中的按钮通常是可检查的 QPushButtonQCheckBox(通常用于非可切换单)或 QRadioButton。如果您创建了一个可切换的按钮组,应确保组中的一个按钮是初始选中的;否则,组将初始处于没有任何按钮被选中的状态。

可以使用 addButton() 添加按钮到组,使用 removeButton() 移除按钮。如果组是可切换的,当前选中的按钮可以通过 checkedButton() 获取。如果按钮被点击,将发出 buttonClicked() 信号;对于独占组中的可检查按钮,这意味着该按钮已被选中。通过 buttons() 返回组中按钮的列表。

此外,QButtonGroup 可以在整数和按钮之间进行映射。您可以使用 setId() 将整数 ID 分配给按钮,并使用 id() 获取它。当前选中的按钮的 ID 可通过 checkedId() 获取,还有一个信号 idClicked() 会发出按钮的 ID。ID -1 被 QButtonGroup 保留,表示“没有这样的按钮”。映射机制的目的在于简化用户界面中枚举值的表示。

另请参阅QGroupBoxQPushButtonQCheckBoxQRadioButton

属性文档

exclusive : bool

此属性表示按钮组是否可切换

如果此属性为 true,则组中任意时刻只能选中一个按钮。用户可以点击任何按钮来选中它,该按钮将替换组中的现有选中按钮。

在独占组中,用户不能通过点击当前选中的按钮来取消选中;相反,必须点击组中的另一个按钮以设置该组的新的选中按钮。

默认情况下,该属性为 true

访问函数

boolexclusive() const
voidsetExclusive(bool)

成员函数文档

[explicit] QButtonGroup::QButtonGroup(QObject *parent = nullptr)

使用给定的 parent 构造一个新空按钮组。

另请参阅addButton() 和 setExclusive()。

[virtual noexcept] QButtonGroup::~QButtonGroup()

销毁按钮组。

void QButtonGroup::addButton(QAbstractButton *button, int id = -1)

将给定的 button 添加到按钮组中。如果 id 为 -1,按钮将被分配一个 ID。自动分配的 ID 保证是负数,从 -2 开始。如果您正在分配自己的 ID,请使用正数以避免冲突。

另请参阅 removeButton() 和 buttons()。

QAbstractButton *QButtonGroup::button(int id) const

返回具有指定 id 的按钮,如果不存在则返回 nullptr

[信号] void QButtonGroup::buttonClicked(QAbstractButton *button)

当指定的 button 被点击时,这个信号会被发射。按钮被点击发生在首次被按下然后释放,当按下其快捷键,或通过程序调用 QAbstractButton::click() 或 QAbstractButton::animateClick

另请参阅 checkedButton() 和 QAbstractButton::clicked

[信号] void QButtonGroup::buttonPressed(QAbstractButton *button)

当指定的 button 被按下时,这个信号会被发射。

另请参阅 QAbstractButton::pressed

[信号] void QButtonGroup::buttonReleased(QAbstractButton *button)

当指定的 button 被释放时,这个信号会被发射。

另请参阅 QAbstractButton::released

[信号] void QButtonGroup::buttonToggled(QAbstractButton *button, bool checked)

当指定的 button 被切换时,这个信号会被发射。如果按钮被选中,则 checked 为真,如果没有被选中,则为假。

另请参阅 QAbstractButton::toggled

QList<QAbstractButton *> QButtonGroup::buttons() const

返回按钮组的按钮列表。这可能为空。

另请参阅 addButton() 和 removeButton

QAbstractButton *QButtonGroup::checkedButton() const

返回按钮组的选中按钮,如果没有按钮被选中则返回 nullptr

另请参阅 buttonClicked

int QButtonGroup::checkedId() const

返回被选中按钮的 id,如果没有按钮被选中则返回 -1。

另请参阅 setId

int QButtonGroup::id(QAbstractButton *button) const

返回指定 button 的 id,如果不存在则返回 -1。

另请参阅 setId

[信号] void QButtonGroup::idClicked(int id)

当点击给定 id 的按钮时,会发出此信号。

另请参阅 checkedButton() 和 QAbstractButton::clicked

[信号] void QButtonGroup::idPressed(int id)

当给定 id 的按钮按下时,会发出此信号。

另请参阅 QAbstractButton::pressed

[信号] void QButtonGroup::idReleased(int id)

当给定 id 的按钮释放时,会发出此信号。

另请参阅 QAbstractButton::released

[信号] void QButtonGroup::idToggled(int id, bool checked)

当给定 id 的按钮被切换时,会发出此信号。若按钮被选中,checked则为true,否则为false。

另请参阅 QAbstractButton::toggled

void QButtonGroup::removeButton(QAbstractButton *button)

从按钮组中移除给定的 button

另请参阅addButton() 和 buttons()。

void QButtonGroup::setId(QAbstractButton *button, int id)

为指定的 button 设置 id。请注意,id 不能为 -1。

另请参阅id()。

© 2024 Qt公司有限公司。本文档的贡献版权属于各自的所有者。本文档是根据由自由软件基金会发布的GNU自由文档许可证版本1.3许可的。Qt和相应的标志是芬兰和其他国家的Qt公司的商标。所有其他商标都属于其各自的所有者。