QButtonGroup Class

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

Header: #include <QButtonGroup>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承: QObject

属性

公共功能

QButtonGroup(QObject *parent = nullptr)
virtual ~QButtonGroup()
void addButton(QAbstractButton *button, int id = -1)
QAbstractButton *button(int id) const
QList<QAbstractButton *> buttons() const
QAbstractButton *checkedButton() const
int checkedId() const
bool exclusive() const
int id(QAbstractButton *button) const
void removeButton(QAbstractButton *button)
void setExclusive(bool)
void setId(QAbstractButton *button, int id)

信号

void buttonClicked(QAbstractButton *button)
void buttonPressed(QAbstractButton *button)
void buttonReleased(QAbstractButton *button)
void buttonToggled(QAbstractButton *button, bool checked)
void idClicked(int id)
void idPressed(int id)
void idReleased(int id)
void idToggled(int id, bool checked)

详细说明

QButtonGroup 提供了一个可放置按钮部件的抽象容器。它不提供该容器的可视化表示(容器部件请参见QGroupBox ),而是管理组中每个按钮的状态。

exclusive 按钮组会关闭所有可选中(切换)的按钮,被点击的按钮除外。默认情况下,按钮组是排他的。按钮组中的按钮通常是可选中的QPushButtons、QCheckBoxes(通常用于非排他性按钮组)或QRadioButtons。如果创建排他性按钮组,应确保组中有一个按钮最初是选中的;否则,该组最初将处于没有按钮被选中的状态。

可以使用addButton() 将按钮添加到组中,也可以使用removeButton() 将按钮移除。如果该组是排他性的,则当前选中的按钮可通过checkedButton() 启用。如果按钮被点击,就会发出buttonClicked() 信号;对于独占组中的可选中按钮,这意味着该按钮已被选中。组中的按钮列表由buttons() 返回。

此外,QButtonGroup 还可以在整数和按钮之间进行映射。您可以使用setId() 为按钮指定一个整数 id,并使用id() 获取该 id。当前选中按钮的 id 可以通过checkedId() 获得,还有一个信号idClicked() 可以发出按钮的 id。QButtonGroup 保留了 id-1 ,表示 "无此按钮"。映射机制的目的是简化用户界面中枚举值的表示。

另请参阅 QGroupBox,QPushButton,QCheckBoxQRadioButton

属性文档

exclusive : bool

此属性表示按钮组是否具有排他性

如果该属性为true ,则在任何时候都只能选中组中的一个按钮。用户可以单击任何按钮进行选中,该按钮将取代现有按钮成为组中的选中按钮。

在排他性组中,用户不能通过单击当前选中的按钮来取消选中;相反,必须单击组中的另一个按钮才能为该组设置新的选中按钮。

默认情况下,该属性为true

访问函数:

bool exclusive() const
void setExclusive(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 从 -2 开始保证为负值。 如果您要分配自己的 id,请使用正值以避免冲突。

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

QAbstractButton *QButtonGroup::button(int id) const

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

[signal] void QButtonGroup::buttonClicked(QAbstractButton *button)

当点击给定的button 时,将发出该信号。按钮被点击的情况包括:第一次按下按钮然后松开、键入快捷键、程序调用QAbstractButton::click() 或QAbstractButton::animateClick() 。

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

[signal] void QButtonGroup::buttonPressed(QAbstractButton *button)

当按下给定的button 时会发出该信号。

另请参阅 QAbstractButton::pressed().

[signal] void QButtonGroup::buttonReleased(QAbstractButton *button)

button 释放时发出该信号。

另请参见 QAbstractButton::released().

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

该信号在给定的button 被切换时发出。如果按钮被选中,则checked 为 true;如果按钮未被选中,则 为 false。

另请参阅 QAbstractButton::toggled() 。

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

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

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

QAbstractButton *QButtonGroup::checkedButton() const

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

另请参见 buttonClicked()。

int QButtonGroup::checkedId() const

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

另请参阅 setId() 。

int QButtonGroup::id(QAbstractButton *button) const

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

另请参阅 setId().

[signal] void QButtonGroup::idClicked(int id)

当点击带有给定id 的按钮时会发出该信号。

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

[signal] void QButtonGroup::idPressed(int id)

当带有id 的按钮被按下时会发出该信号。

另请参见 QAbstractButton::pressed().

[signal] void QButtonGroup::idReleased(int id)

当带有给定id 的按钮被释放时会发出该信号。

另请参见 QAbstractButton::released().

[signal] 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() 。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.