QGroupBox 类
QGroupBox小部件提供了一个带有标题的组框框架。
Header | #include < QGroupBox > |
---|---|
qmake | QT += widgets |
Inherits | QWidget |
Inherited By |
详细说明
组框提供一个框架、顶部的标题、键盘快捷键,并在其内部显示各种其他小部件。键盘快捷键将键盘焦点移动到组框的子窗口小部件之一。
QGroupBox还允许您设置标题(通常在构造函数中设置)和标题的对齐方式。分组框可以选中。可选中组框中的子窗口小部件根据是否选中组框而启用或禁用。
可以通过启用flat属性来最小化区域框的空间消耗。在大多数样式中,启用此属性会导致删除框架的左、右和下边缘。
QGroupBox不会自动布局子小部件(通常是qcheckbox或qradiobutton,但可以是任何小部件)。下面的示例演示如何使用布局设置QGroupBox:
int main(int argc, char *argv[])
{
// QApplication::setStyle (QStyleFactory::create ("fusion")); //windowsvista macintosh fusion
QApplication app(argc,argv);
app.setApplicationName ("QGroupBox");
QDialog w;
w.setWindowFlag (Qt::WindowContextHelpButtonHint,false);
QGroupBox *groupBox = new QGroupBox("Exclusive Radio Buttons");
groupBox->setFlat (true);
QRadioButton *radio1 = new QRadioButton("&Radio button 1");
QRadioButton *radio2 = new QRadioButton("R&adio button 2");
QRadioButton *radio3 = new QRadioButton("Ra&dio button 3");
radio1->setChecked(true);
QVBoxLayout *vbox = new QVBoxLayout();
vbox->addWidget(radio1);
vbox->addWidget(radio2);
vbox->addWidget(radio3);
vbox->addStretch(1);
groupBox->setLayout(vbox);
QVBoxLayout *mainLayout = new QVBoxLayout(&w);
mainLayout->addWidget (groupBox);
w.show ();
app.exec();
return 0;
}
属性
-
alignment: Qt::Alignment 分组框标题的对齐方式
大多数样式将标题放置在框架的顶部。标题的水平对齐方式可以使用以下列表中的单个值指定:
- Qt::AlignLeft 将标题文本与区域框的左侧对齐。
- Qt::AlignRight 将标题文本与区域框的右侧对齐。
- Qt::AlignHCenter将标题文本与区域框的水平中心对齐。
- 默认的对齐方式是Qt::AlignLeft。
Access functions:
- Qt::Alignment alignment() const
- void setAlignment(int alignment)
-
checkable: bool 分组框的标题中是否有复选框
如果此属性为true,则组框将使用复选框代替普通标签显示其标题。如果选中该复选框,则启用组框的子项;否则,它们将被禁用且不可访问。
默认情况下,组框不可选中。如果为组框启用了此属性,则最初还将选中它以确保其内容已启用。- bool isCheckable() const
- void setCheckable(bool checkable)
-
checked: bool 是否选中组框
如果组框可选中,则会显示一个复选框。如果选中此复选框,则启用组框的子项;否则,子项将被禁用,并且用户无法访问。默认情况下,也会选中可选中的组框。- bool isChecked() const
- void setChecked(bool checked)
Notifier signal:
- void toggled(bool on)
-
flat: bool 此属性用于确定分组框是平面绘制的还是具有框架
组框通常由顶部带有标题的周围框架组成。如果启用此属性,只有框架的顶部会以大多数样式绘制;否则,绘制整个框架。
默认情况下,此属性是禁用的,即除非明确指定,否则组框不是平面的。
注意:在某些样式中,平坦组框和非平坦组框具有相似的表示形式,可能不像在其他样式中那样易于区分。- bool isFlat() const
- void setFlat(bool flat)
-
title: QString 分组框标题文本
如果标题包含一个和符(‘&’),后面跟着一个字母,则组框标题文本将有一个键盘快捷键。g->setTitle("&User information");
在上面的例子中,Alt+U将键盘焦点移动到区域框。有关详细信息,请参阅QShortcut文档(要显示实际的and符合,使用 ‘&&’)。 没有默认的标题文本。
- void setTitle(const QString &title)
- QString title() const
公共函数
构造和析构
- QGroupBox(const QString &title, QWidget *parent = nullptr)
- QGroupBox(QWidget *parent = nullptr)
- virtual ~QGroupBox()
属性相关
- Qt::Alignment alignment() const
- void setAlignment(int alignment)
- bool isCheckable() const
- void setCheckable(bool checkable)
- bool isChecked() const
- void setChecked(bool checked)
- bool isFlat() const
- void setFlat(bool flat)
- void setTitle(const QString &title)
- QString title() const
重写的公共函数
- virtual QSize minimumSizeHint() const override
公共槽
- void setChecked(bool checked)
信号
- void clicked(bool checked = false)
- void toggled(bool on)
受保护的函数
- void initStyleOption(QStyleOptionGroupBox *option) const
重写的受保护的函数
- virtual void changeEvent(QEvent *ev) override
- virtual void childEvent(QChildEvent *c) override
- virtual bool event(QEvent *e) override
- virtual void focusInEvent(QFocusEvent *fe) override
- virtual void mouseMoveEvent(QMouseEvent *event) override
- virtual void mousePressEvent(QMouseEvent *event) override
- virtual void mouseReleaseEvent(QMouseEvent *event) override
- virtual void paintEvent(QPaintEvent *event) override
- virtual void resizeEvent(QResizeEvent *e) override
参考
- Group Box Example