组框示例展示了如何在Qt中使用不同类型的组框。
组框是容器小部件,可以在逻辑上和屏幕上将按钮组织成组。它们管理用户和应用程序之间的交互,因此您不必强制执行简单的约束。
组框通常用于将复选框和单选按钮组织到独占组中。
组框示例由单个窗口类组成,用于显示四个组框:独占单选按钮组、非独占复选框组、具有启用复选框的独占单选按钮组和具有普通按钮的组框。
详细讲解:
https://doc.qt.io/qt-5/qtwidgets-widgets-groupbox-example.html
Window类是QWidget的一个子类,用于显示许多组框。类定义包含构造每个组框的函数,并使用按钮小部件的不同选择来填充它:
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = nullptr);
private:
QGroupBox *createFirstExclusiveGroup();
QGroupBox *createSecondExclusiveGroup();
QGroupBox *createNonExclusiveGroup();
QGroupBox *createPushButtonGroup();
};
在本例中,小部件将用作顶级窗口,因此定义了构造函数,这样我们就不必指定父小部件。
收获点:
1.设置组合框是否可编辑;
第二个组框本身是可选中的,提供了一种禁用其中所有按钮的方便方法。最初,它是未选中的,因此必须先选中组框本身,然后才能选中其中的任何单选按钮。
QGroupBox *Window::createSecondExclusiveGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("E&xclusive Radio Buttons"));
groupBox->setCheckable(true);
groupBox->setChecked(false);
设置组合框为“扁平”模式:
第三个组框是用“扁平”样式构造的,这种样式更适合于某些类型的对话框。
QGroupBox *Window::createNonExclusiveGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("Non-Exclusive Checkboxes"));
groupBox->setFlat(true);
2.设置QCheckbox为三状态复选框:
QCheckBox *tristateBox = new QCheckBox(tr("Tri-&state button"));
tristateBox->setTristate(true);
3.设置QPushbutton为可检查的,以及“扁平”式:
QPushButton *pushButton = new QPushButton(tr("&Normal Button"));
QPushButton *toggleButton = new QPushButton(tr("&Toggle Button"));
toggleButton->setCheckable(true);
toggleButton->setChecked(true);
QPushButton *flatButton = new QPushButton(tr("&Flat Button"));
flatButton->setFlat(true);