Header:#include < QButtonGroup >
qmake:QT += widgets
Inherits:QObject
Properties
exclusive : bool
Public Functions
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)
Signals
void buttonClicked(int id)
void buttonClicked(QAbstractButton *button)
void buttonPressed(int id)
void buttonPressed(QAbstractButton *button)
void buttonReleased(int id)
void buttonReleased(QAbstractButton *button)
void buttonToggled(int id, bool checked)
void buttonToggled(QAbstractButton *button, bool checked)
Detailed Description
QButtonGroup提供了一个抽象容器,可以将按钮小部件放入其中。它不提供该容器的可视化表示(有关容器小部件,请参阅QGroupBox),而是管理组中每个按钮的状态。
独占按钮组关闭除已单击的按钮外的所有可检查(切换)按钮。缺省情况下,按钮组是独占的。按钮组中的按钮通常是可检查的QPushButtons、QCheckBoxes(通常用于非排他性按钮组)或QRadioButtons。如果您创建了一个独占按钮组,您应该确保组中的一个按钮最初被选中;否则,该组最初将处于没有按钮被选中的状态。
可以使用addButton()将按钮添加到组中,并使用removeButton()删除按钮。如果组是排他的,则当前选中的按钮可用checkedButton()。如果按钮被点击,则会发出buttonClicked()信号;对于独占组中的可检查按钮,这意味着该按钮已被选中。组中的按钮列表由buttons()返回。
此外,QButtonGroup可以在整数和按钮之间进行映射。您可以使用setId()为按钮分配一个整数id,并使用id()检索它。当前选中的按钮的id可以通过checkedId()获得,并且有一个重载的信号buttonClicked()发出按钮的id。QButtonGroup保留id -1,表示“没有这样的按钮”。映射机制的目的是简化用户界面中枚举值的表示。
See also QGroupBox, QPushButton, QCheckBox, and QRadioButton.
Property Documentation
exclusive : bool
此属性保留按钮组是否为排他性
如果此属性为true,则在任何给定时间只能选中组中的一个按钮。用户可以单击任何按钮来选中它,该按钮将替换现有的按钮作为组中的选中按钮。
在独占组中,用户不能通过点击当前选中的按钮来取消选中;相反,必须单击组中的另一个按钮来为该组设置新的选中按钮。
默认情况下,此属性为true。
访问函数:
bool exclusive() const
void setExclusive(bool)
Member Function Documentation
QButtonGroup::QButtonGroup(QObject *parent = nullptr)
使用给定的父级构造一个新的空按钮组。
See also addButton() and setExclusive().
[signal] void QButtonGroup::buttonClicked(int id)
当单击具有给定id的按钮时,会发出该信号。
注意:Signal buttonClicked在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<int>::of(&QButtonGroup::buttonClicked),
[=](int id){ /* ... */ });
See also checkedButton() and QAbstractButton::clicked().
[signal] void QButtonGroup::buttonClicked(QAbstractButton *button)
当给定的按钮被单击时,就会发出这个信号。当按钮第一次被按下然后被释放时,当它的快捷键被键入时,或者当QAbstractButton::click()或QAbstractButton::animateClick()被编程调用时,按钮被单击。
注意:Signal buttonClicked在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
[=](QAbstractButton *button){ /* ... */ });
See also checkedButton() and QAbstractButton::clicked().
[signal] void QButtonGroup::buttonPressed(int id)
当给定id的按钮被按下时,就会发出这个信号。
注意:Signal buttonPressed在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<int>::of(&QButtonGroup::buttonPressed),
[=](int id){ /* ... */ });
这个函数是在Qt 4.2中引入的。
See also QAbstractButton::pressed().
[signal] void QButtonGroup::buttonPressed(QAbstractButton *button)
这个信号在给定的按钮被按下时发出。
注意:Signal buttonPressed在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonPressed),
[=](QAbstractButton *button){ /* ... */ });
这个函数是在Qt 4.2中引入的。
See also QAbstractButton::pressed().
[signal] void QButtonGroup::buttonReleased(int id)
当释放具有给定id的按钮时,会发出该信号。
注意:Signal buttonReleased在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<int>::of(&QButtonGroup::buttonReleased),
[=](int id){ /* ... */ });
这个函数是在Qt 4.2中引入的。
See also QAbstractButton::released().
[signal] void QButtonGroup::buttonReleased(QAbstractButton *button)
这个信号在给定的按钮被释放时发出。
注意:Signal buttonReleased在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonReleased),
[=](QAbstractButton *button){ /* ... */ });
这个函数是在Qt 4.2中引入的。
See also QAbstractButton::released().
[signal] void QButtonGroup::buttonToggled(int id, bool checked)
当切换具有给定id的按钮时,会发出此信号。如果按钮被选中,则Checked为true,如果按钮未被选中,则为false。
注意:Signal buttontoggle在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<int, bool>::of(&QButtonGroup::buttonToggled),
[=](int id, bool checked){ /* ... */ });
这个函数是在Qt 5.2中引入的。
See also QAbstractButton::toggled().
[signal] void QButtonGroup::buttonToggled(QAbstractButton *button, bool checked)
该信号在给定按钮被切换时发出。如果按钮被选中,则Checked为true,如果按钮未被选中,则为false。
注意:Signal buttontoggle在这个类中是重载的。为了使用函数指针语法连接到这个信号,Qt提供了一个方便的助手来获取函数指针,如下例所示:
connect(buttonGroup, QOverload<QAbstractButton *, bool>::of(&QButtonGroup::buttonToggled),
[=](QAbstractButton *button, bool checked){ /* ... */ });
这个函数是在Qt 5.2中引入的。
See also QAbstractButton::toggled().
[virtual] QButtonGroup::~QButtonGroup()
Destroys the button group.
void QButtonGroup::addButton(QAbstractButton *button, int id = -1)
将给定的按钮添加到按钮组。如果id为-1,则将为按钮分配一个id。自动分配的id保证是负的,从-2开始。如果要分配自己的id,请使用正值以避免冲突。
See also removeButton() and buttons().
QAbstractButton *QButtonGroup::button(int id) const
返回带有指定id的按钮,如果不存在则返回null。
这个函数是在Qt 4.1中引入的。
QList<QAbstractButton *> QButtonGroup::buttons() const
返回按钮组的按钮列表。这可能是空的。
See also addButton() and removeButton().
QAbstractButton *QButtonGroup::checkedButton() const
返回按钮组的选中按钮,如果没有选中按钮,则返回nullptr。
See also buttonClicked().
int QButtonGroup::checkedId() const
返回checkedButton()的id,如果没有按钮被检查则返回-1。
这个函数是在Qt 4.1中引入的。
See also setId().
int QButtonGroup::id(QAbstractButton *button) const
返回指定按钮的id,如果不存在则返回-1。
这个函数是在Qt 4.1中引入的。
See also setId().
void QButtonGroup::removeButton(QAbstractButton *button)
从按钮组中移除给定的按钮。
See also addButton() and buttons().
void QButtonGroup::setId(QAbstractButton *button, int id)
设置指定按钮的id。注意,id不能为-1。
这个函数是在Qt 4.1中引入的。
See also id().
5576

被折叠的 条评论
为什么被折叠?



