1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QGROUPBOX_H
5#define QGROUPBOX_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtWidgets/qframe.h>
9
10QT_REQUIRE_CONFIG(groupbox);
11
12QT_BEGIN_NAMESPACE
13
14class QGroupBoxPrivate;
15class QStyleOptionGroupBox;
16class Q_WIDGETS_EXPORT QGroupBox : public QWidget
17{
18 Q_OBJECT
19
20 Q_PROPERTY(QString title READ title WRITE setTitle)
21 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
22 Q_PROPERTY(bool flat READ isFlat WRITE setFlat)
23 Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable)
24 Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY toggled USER true)
25public:
26 explicit QGroupBox(QWidget *parent = nullptr);
27 explicit QGroupBox(const QString &title, QWidget *parent = nullptr);
28 ~QGroupBox();
29
30 QString title() const;
31 void setTitle(const QString &title);
32
33 Qt::Alignment alignment() const;
34 void setAlignment(int alignment);
35
36 QSize minimumSizeHint() const override;
37
38 bool isFlat() const;
39 void setFlat(bool flat);
40 bool isCheckable() const;
41 void setCheckable(bool checkable);
42 bool isChecked() const;
43
44public Q_SLOTS:
45 void setChecked(bool checked);
46
47Q_SIGNALS:
48 void clicked(bool checked = false);
49 void toggled(bool);
50
51protected:
52 bool event(QEvent *event) override;
53 void childEvent(QChildEvent *event) override;
54 void resizeEvent(QResizeEvent *event) override;
55 void paintEvent(QPaintEvent *event) override;
56 void focusInEvent(QFocusEvent *event) override;
57 void changeEvent(QEvent *event) override;
58 void mousePressEvent(QMouseEvent *event) override;
59 void mouseMoveEvent(QMouseEvent *event) override;
60 void mouseReleaseEvent(QMouseEvent *event) override;
61 virtual void initStyleOption(QStyleOptionGroupBox *option) const;
62
63
64private:
65 Q_DISABLE_COPY(QGroupBox)
66 Q_DECLARE_PRIVATE(QGroupBox)
67 Q_PRIVATE_SLOT(d_func(), void _q_setChildrenEnabled(bool b))
68};
69
70QT_END_NAMESPACE
71
72#endif // QGROUPBOX_H
73

source code of qtbase/src/widgets/widgets/qgroupbox.h