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 | |
10 | QT_REQUIRE_CONFIG(groupbox); |
11 | |
12 | QT_BEGIN_NAMESPACE |
13 | |
14 | class QGroupBoxPrivate; |
15 | class QStyleOptionGroupBox; |
16 | class 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) |
25 | public: |
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 | |
44 | public Q_SLOTS: |
45 | void setChecked(bool checked); |
46 | |
47 | Q_SIGNALS: |
48 | void clicked(bool checked = false); |
49 | void toggled(bool); |
50 | |
51 | protected: |
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 | |
64 | private: |
65 | Q_DISABLE_COPY(QGroupBox) |
66 | Q_DECLARE_PRIVATE(QGroupBox) |
67 | Q_PRIVATE_SLOT(d_func(), void _q_setChildrenEnabled(bool b)) |
68 | }; |
69 | |
70 | QT_END_NAMESPACE |
71 | |
72 | #endif // QGROUPBOX_H |
73 | |