管理器Widgets(03):【类】QGroupBox [官翻]

QGroupBox 类

QGroupBox小部件提供了一个带有标题的组框框架。

Header#include < QGroupBox >
qmakeQT += widgets
InheritsQWidget
Inherited By

详细说明

img

组框提供一个框架、顶部的标题、键盘快捷键,并在其内部显示各种其他小部件。键盘快捷键将键盘焦点移动到组框的子窗口小部件之一。

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;
}

属性

  1. alignment: Qt::Alignment 分组框标题的对齐方式

    大多数样式将标题放置在框架的顶部。标题的水平对齐方式可以使用以下列表中的单个值指定:

    • Qt::AlignLeft 将标题文本与区域框的左侧对齐。
    • Qt::AlignRight 将标题文本与区域框的右侧对齐。
    • Qt::AlignHCenter将标题文本与区域框的水平中心对齐。
    • 默认的对齐方式是Qt::AlignLeft。

    Access functions:

    • Qt::Alignment alignment() const
    • void setAlignment(int alignment)

  2. checkable: bool 分组框的标题中是否有复选框

    如果此属性为true,则组框将使用复选框代替普通标签显示其标题。如果选中该复选框,则启用组框的子项;否则,它们将被禁用且不可访问。
    默认情况下,组框不可选中。如果为组框启用了此属性,则最初还将选中它以确保其内容已启用。

    • bool isCheckable() const
    • void setCheckable(bool checkable)

  3. checked: bool 是否选中组框
    如果组框可选中,则会显示一个复选框。如果选中此复选框,则启用组框的子项;否则,子项将被禁用,并且用户无法访问。默认情况下,也会选中可选中的组框。

    • bool isChecked() const
    • void setChecked(bool checked)

    Notifier signal:

    • void toggled(bool on)

  4. flat: bool 此属性用于确定分组框是平面绘制的还是具有框架
    组框通常由顶部带有标题的周围框架组成。如果启用此属性,只有框架的顶部会以大多数样式绘制;否则,绘制整个框架。
    默认情况下,此属性是禁用的,即除非明确指定,否则组框不是平面的。
    注意:在某些样式中,平坦组框和非平坦组框具有相似的表示形式,可能不像在其他样式中那样易于区分。

    • bool isFlat() const
    • void setFlat(bool flat)

  5. title: QString 分组框标题文本
    如果标题包含一个和符(‘&’),后面跟着一个字母,则组框标题文本将有一个键盘快捷键。

    g->setTitle("&User information");
    

    在上面的例子中,Alt+U将键盘焦点移动到区域框。有关详细信息,请参阅QShortcut文档(要显示实际的and符合,使用 ‘&&’)。 没有默认的标题文本。

    • void setTitle(const QString &title)
    • QString title() const

公共函数

构造和析构

  1. QGroupBox(const QString &title, QWidget *parent = nullptr)
  2. QGroupBox(QWidget *parent = nullptr)
  3. virtual ~QGroupBox()

属性相关

  1. Qt::Alignment alignment() const
  2. void setAlignment(int alignment)
  3. bool isCheckable() const
  4. void setCheckable(bool checkable)
  5. bool isChecked() const
  6. void setChecked(bool checked)
  7. bool isFlat() const
  8. void setFlat(bool flat)
  9. void setTitle(const QString &title)
  10. QString title() const

重写的公共函数

  1. virtual QSize minimumSizeHint() const override

公共槽

  1. void setChecked(bool checked)

信号

  1. void clicked(bool checked = false)
  2. void toggled(bool on)

受保护的函数

  1. void initStyleOption(QStyleOptionGroupBox *option) const

重写的受保护的函数

  1. virtual void changeEvent(QEvent *ev) override
  2. virtual void childEvent(QChildEvent *c) override
  3. virtual bool event(QEvent *e) override
  4. virtual void focusInEvent(QFocusEvent *fe) override
  5. virtual void mouseMoveEvent(QMouseEvent *event) override
  6. virtual void mousePressEvent(QMouseEvent *event) override
  7. virtual void mouseReleaseEvent(QMouseEvent *event) override
  8. virtual void paintEvent(QPaintEvent *event) override
  9. virtual void resizeEvent(QResizeEvent *e) override

参考

  • Group Box Example
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值