QButtonGroup 类
QButtonGroup 类提供了一个容器以组织按钮小部件的组。更多...
头文件 | #include <QButtonGroup> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QObject |
属性
- exclusive : bool
公共函数
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)会关闭除了被点击之外的所有可检查(可切换)按钮。默认情况下,按钮组是可切换的。按钮组中的按钮通常是可检查的 QPushButton,QCheckBox(通常用于非可切换单)或 QRadioButton。如果您创建了一个可切换的按钮组,应确保组中的一个按钮是初始选中的;否则,组将初始处于没有任何按钮被选中的状态。
可以使用 addButton() 添加按钮到组,使用 removeButton() 移除按钮。如果组是可切换的,当前选中的按钮可以通过 checkedButton() 获取。如果按钮被点击,将发出 buttonClicked() 信号;对于独占组中的可检查按钮,这意味着该按钮已被选中。通过 buttons() 返回组中按钮的列表。
此外,QButtonGroup 可以在整数和按钮之间进行映射。您可以使用 setId() 将整数 ID 分配给按钮,并使用 id() 获取它。当前选中的按钮的 ID 可通过 checkedId() 获取,还有一个信号 idClicked() 会发出按钮的 ID。ID -1
被 QButtonGroup 保留,表示“没有这样的按钮”。映射机制的目的在于简化用户界面中枚举值的表示。
另请参阅QGroupBox,QPushButton,QCheckBox 和 QRadioButton。
属性文档
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,请使用正数以避免冲突。
另请参阅 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。
void QButtonGroup::setId(QAbstractButton *button, int id)
为指定的 button 设置 id。请注意,id 不能为 -1。
另请参阅id()。
© 2024 Qt公司有限公司。本文档的贡献版权属于各自的所有者。本文档是根据由自由软件基金会发布的GNU自由文档许可证版本1.3许可的。Qt和相应的标志是芬兰和其他国家的Qt公司的商标。所有其他商标都属于其各自的所有者。