Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qlayoutitem.h
Go to the documentation of this file.
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// Qt-Security score:significant reason:default
4
5#ifndef QLAYOUTITEM_H
6#define QLAYOUTITEM_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qsizepolicy.h>
10#include <QtCore/qrect.h>
11
12#include <limits.h>
13
15
16
17inline constexpr int QLAYOUTSIZE_MAX = INT_MAX/256/16;
18
19class QLayout;
20class QLayoutItem;
21class QSpacerItem;
22class QWidget;
23class QSize;
24
25class Q_WIDGETS_EXPORT QLayoutItem
26{
27public:
28 inline explicit QLayoutItem(Qt::Alignment alignment = Qt::Alignment());
29 virtual ~QLayoutItem();
30 virtual QSize sizeHint() const = 0;
31 virtual QSize minimumSize() const = 0;
32 virtual QSize maximumSize() const = 0;
33 virtual Qt::Orientations expandingDirections() const = 0;
34 virtual void setGeometry(const QRect&) = 0;
35 virtual QRect geometry() const = 0;
36 virtual bool isEmpty() const = 0;
37 virtual bool hasHeightForWidth() const;
38 virtual int heightForWidth(int) const;
39 virtual int minimumHeightForWidth(int) const;
40 virtual void invalidate();
41
42 virtual QWidget *widget() const;
43 virtual QLayout *layout();
44 virtual QSpacerItem *spacerItem();
45
46 Qt::Alignment alignment() const { return align; }
47 void setAlignment(Qt::Alignment a);
48 virtual QSizePolicy::ControlTypes controlTypes() const;
49
50protected:
51 Qt::Alignment align;
52};
53
54inline QLayoutItem::QLayoutItem(Qt::Alignment aalignment)
55 : align(aalignment) { }
56
57class Q_WIDGETS_EXPORT QSpacerItem : public QLayoutItem
58{
59public:
60 QSpacerItem(int w, int h,
61 QSizePolicy::Policy hData = QSizePolicy::Minimum,
62 QSizePolicy::Policy vData = QSizePolicy::Minimum)
63 : width(w), height(h), sizeP(hData, vData) { }
64 ~QSpacerItem();
65
66 void changeSize(int w, int h,
67 QSizePolicy::Policy hData = QSizePolicy::Minimum,
68 QSizePolicy::Policy vData = QSizePolicy::Minimum);
69 QSize sizeHint() const override;
70 QSize minimumSize() const override;
71 QSize maximumSize() const override;
72 Qt::Orientations expandingDirections() const override;
73 bool isEmpty() const override;
74 void setGeometry(const QRect&) override;
75 QRect geometry() const override;
76 QSpacerItem *spacerItem() override;
77 QSizePolicy sizePolicy() const { return sizeP; }
78
79private:
80 int width;
81 int height;
82 QSizePolicy sizeP;
83 QRect rect;
84};
85
86class Q_WIDGETS_EXPORT QWidgetItem : public QLayoutItem
87{
88 Q_DISABLE_COPY(QWidgetItem)
89
90public:
91 explicit QWidgetItem(QWidget *w) : wid(w) { }
92 ~QWidgetItem();
93
94 QSize sizeHint() const override;
95 QSize minimumSize() const override;
96 QSize maximumSize() const override;
97 Qt::Orientations expandingDirections() const override;
98 bool isEmpty() const override;
99 void setGeometry(const QRect&) override;
100 QRect geometry() const override;
101 QWidget *widget() const override;
102
103 bool hasHeightForWidth() const override;
104 int heightForWidth(int) const override;
105 int minimumHeightForWidth(int) const override;
106 QSizePolicy::ControlTypes controlTypes() const override;
107protected:
108 QWidget *wid;
109};
110
111class Q_WIDGETS_EXPORT QWidgetItemV2 : public QWidgetItem
112{
113public:
114 explicit QWidgetItemV2(QWidget *widget);
115 ~QWidgetItemV2();
116
117 QSize sizeHint() const override;
118 QSize minimumSize() const override;
119 QSize maximumSize() const override;
120 int heightForWidth(int width) const override;
121
122private:
123 enum { Dirty = -123, HfwCacheMaxSize = 3 };
124
125 inline bool useSizeCache() const;
126 void updateCacheIfNecessary() const;
127 inline void invalidateSizeCache() {
128 q_cachedMinimumSize.setWidth(Dirty);
129 q_hfwCacheSize = 0;
130 }
131
132 mutable QSize q_cachedMinimumSize;
133 mutable QSize q_cachedSizeHint;
134 mutable QSize q_cachedMaximumSize;
135 mutable QSize q_cachedHfws[HfwCacheMaxSize];
136 mutable short q_firstCachedHfw;
137 mutable short q_hfwCacheSize;
138 void *d;
139
140 friend class QWidgetPrivate;
141
142 Q_DISABLE_COPY(QWidgetItemV2)
143};
144
145QT_END_NAMESPACE
146
147#endif // QLAYOUTITEM_H
The QBoxLayout class lines up child widgets horizontally or vertically.
Definition qboxlayout.h:22
The QHBoxLayout class lines up widgets horizontally.
Definition qboxlayout.h:79
The QLayoutItem class provides an abstract item that a QLayout manipulates.
Definition qlayoutitem.h:26
friend class QWidget
Definition qpainter.h:431
The QSpacerItem class provides blank space in a layout.
Definition qlayoutitem.h:58
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
The QVBoxLayout class lines up widgets vertically.
Definition qboxlayout.h:92
QSize minimumSizeHint() const override
\reimp
Definition qwizard.cpp:432
void setSideWidget(QWidget *widget)
Definition qwizard.cpp:438
QWatermarkLabel(QWidget *parent, QWidget *sideWidget)
Definition qwizard.cpp:426
QWidget * sideWidget() const
Definition qwizard.cpp:449
The QWidgetItem class is a layout item that represents a widget.
Definition qlayoutitem.h:87
QWizardAntiFlickerWidget(QWizard *wizard, QWizardPrivate *)
Definition qwizard.cpp:513
QWizardDefaultProperty(const char *className, const char *property, const char *changedSignal)
Definition qwizard.cpp:142
QByteArray changedSignal
Definition qwizard.cpp:139
QString name
Definition qwizard.cpp:159
void resolve(const QList< QWizardDefaultProperty > &defaultPropertyTable)
Definition qwizard.cpp:179
QWizardField(QWizardPage *page, const QString &spec, QObject *object, const char *property, const char *changedSignal)
Definition qwizard.cpp:168
void findProperty(const QWizardDefaultProperty *properties, int propertyCount)
Definition qwizard.cpp:186
QByteArray property
Definition qwizard.cpp:162
QByteArray changedSignal
Definition qwizard.cpp:163
QVariant initialValue
Definition qwizard.cpp:164
QWizardPage * page
Definition qwizard.cpp:158
QObject * object
Definition qwizard.cpp:161
void paintEvent(QPaintEvent *event) override
This event handler can be reimplemented in a subclass to receive paint events passed in event.
Definition qwizard.cpp:392
QWizardHeader(RulerType, QWidget *parent=nullptr)
Definition qwizard.cpp:253
QWizardHeader(QWidget *parent=nullptr)
Definition qwizard.cpp:279
void setup(const QWizardLayoutInfo &info, const QString &title, const QString &subTitle, const QPixmap &logo, const QPixmap &banner, Qt::TextFormat titleFormat, Qt::TextFormat subTitleFormat, QWizard::BannerSizePolicy bannerSizePolicy)
Definition qwizard.cpp:329
bool operator!=(const QWizardLayoutInfo &other) const
Definition qwizard.cpp:222
bool operator==(const QWizardLayoutInfo &other) const
Definition qwizard.cpp:225
TriState completeState
Definition qwizard.cpp:473
void _q_maybeEmitCompleteChanged()
Definition qwizard.cpp:488
QMap< int, QString > buttonCustomTexts
Definition qwizard.cpp:477
void _q_updateCachedCompleteState()
Definition qwizard.cpp:496
bool cachedIsComplete() const
Definition qwizard.cpp:480
QPixmap pixmaps[QWizard::NPixmaps]
Definition qwizard.cpp:471
QList< QWizardField > pendingFields
Definition qwizard.cpp:472
The QWizardPage class is the base class for wizard pages.
Definition qwizard.h:187
QMap< int, QString > buttonCustomTexts
Definition qwizard.cpp:580
QList< int > history
Definition qwizard.cpp:569
QMap< QString, int > fieldIndexMap
Definition qwizard.cpp:567
void setStyle(QStyle *style)
Definition qwizard.cpp:1713
PageMap pageMap
Definition qwizard.cpp:565
QGridLayout * mainLayout
Definition qwizard.cpp:613
QList< QWizardDefaultProperty > defaultPropertyTable
Definition qwizard.cpp:568
QAbstractButton * commit
Definition qwizard.cpp:593
bool buttonLayoutContains(QWizard::WizardButton which)
Definition qwizard.cpp:1511
void updateCurrentPage()
Definition qwizard.cpp:1330
void _q_updateButtonStates()
Definition qwizard.cpp:1635
QVBoxLayout * pageVBoxLayout
Definition qwizard.cpp:611
QWatermarkLabel * watermarkLabel
Definition qwizard.cpp:604
QAbstractButton * cancel
Definition qwizard.cpp:595
QWizardLayoutInfo layoutInfoForCurrentPage()
Definition qwizard.cpp:874
bool startSetByUser
Definition qwizard.cpp:571
void connectButton(QWizard::WizardButton which) const
Definition qwizard.cpp:1399
void removeFieldAt(int index)
Definition qwizard.cpp:759
QAbstractButton * next
Definition qwizard.cpp:592
QAbstractButton * help
Definition qwizard.cpp:596
QAbstractButton * back
Definition qwizard.cpp:591
QLabel * subTitleLabel
Definition qwizard.cpp:608
QFrame * pageFrame
Definition qwizard.cpp:606
QLabel * titleLabel
Definition qwizard.cpp:607
void recreateLayout(const QWizardLayoutInfo &info)
Definition qwizard.cpp:935
QWizardAntiFlickerWidget * antiFlickerWidget
Definition qwizard.cpp:600
QAbstractButton * finish
Definition qwizard.cpp:594
QWizardHeader * headerWidget
Definition qwizard.cpp:603
void updateLayout()
Definition qwizard.cpp:1209
QHBoxLayout * buttonLayout
Definition qwizard.cpp:612
void updateMinMaxSizes(const QWizardLayoutInfo &info)
Definition qwizard.cpp:1294
void _q_emitCustomButtonClicked()
Definition qwizard.cpp:1623
void setButtonLayout(const QWizard::WizardButton *array, int size)
Definition qwizard.cpp:1478
bool isVistaThemeEnabled() const
Definition qwizard.cpp:1596
void updatePixmap(QWizard::WizardPixmap which)
Definition qwizard.cpp:1516
QWidget * sideWidget
Definition qwizard.cpp:605
void _q_handleFieldObjectDestroyed(QObject *)
Definition qwizard.cpp:1686
void switchToPage(int newId, Direction direction)
Definition qwizard.cpp:774
QList< QWizard::WizardButton > buttonsCustomLayout
Definition qwizard.cpp:582
void enableUpdates()
Definition qwizard.cpp:1614
int disableUpdatesCount
Definition qwizard.cpp:576
QPixmap defaultPixmaps[QWizard::NPixmaps]
Definition qwizard.cpp:586
QWidget * placeholderWidget2
Definition qwizard.cpp:602
QWizardRuler * bottomRuler
Definition qwizard.cpp:609
Qt::TextFormat subTitleFmt
Definition qwizard.cpp:584
void updateButtonTexts()
Definition qwizard.cpp:1409
void updateButtonLayout()
Definition qwizard.cpp:1438
QList< QWizardField > fields
Definition qwizard.cpp:566
bool ensureButton(QWizard::WizardButton which) const
Definition qwizard.cpp:1370
void updatePalette()
Definition qwizard.cpp:1270
bool buttonsHaveCustomLayout
Definition qwizard.cpp:581
void cleanupPagesNotInHistory()
Definition qwizard.cpp:723
QAbstractButton * btns[QWizard::NButtons]
Definition qwizard.cpp:598
Qt::TextFormat titleFmt
Definition qwizard.cpp:583
void disableUpdates()
Definition qwizard.cpp:1605
QWidget * placeholderWidget1
Definition qwizard.cpp:601
void addField(const QWizardField &field)
Definition qwizard.cpp:737
QWizardLayoutInfo layoutInfo
Definition qwizard.cpp:575
QWizardRuler(QWidget *parent=nullptr)
Definition qwizard.cpp:419
The QWizard class provides a framework for wizards.
Definition qwizard.h:20
QT_BEGIN_NAMESPACE constexpr int QLAYOUTSIZE_MAX
Definition qlayoutitem.h:17
static const char * buttonSlots(QWizard::WizardButton which)
Definition qwizard.cpp:850
static QString buttonDefaultText(int wstyle, int which, const QWizardPrivate *wizardPrivate)
Definition qwizard.cpp:631
const char className[16]
Definition qwizard.cpp:100
static QString object_name_for_button(QWizard::WizardButton which)
Definition qwizard.cpp:1344
Q_DECLARE_TYPEINFO(QWizardDefaultProperty, Q_RELOCATABLE_TYPE)
const int ModernHeaderTopMargin
Definition qwizard.cpp:51
static void changeSpacerSize(QLayout *layout, int index, int width, int height)
Definition qwizard.cpp:59
const int MacLayoutLeftMargin
Definition qwizard.cpp:54
const int GapBetweenLogoAndRightEdge
Definition qwizard.cpp:50
const char property[13]
Definition qwizard.cpp:101
static bool objectInheritsXAndXIsCloserThanY(const QObject *object, const QByteArray &classX, const QByteArray &classY)
Definition qwizard.cpp:85
static QWidget * iWantTheFocus(QWidget *ancestor)
Definition qwizard.cpp:67
Q_DECLARE_TYPEINFO(QWizardField, Q_RELOCATABLE_TYPE)
const int MacLayoutBottomMargin
Definition qwizard.cpp:57
const int MacLayoutRightMargin
Definition qwizard.cpp:56
static const char * changed_signal(int which)
Definition qwizard.cpp:114
const size_t NFallbackDefaultProperties
Definition qwizard.cpp:112
const int ClassicHMargin
Definition qwizard.cpp:52
const int MacButtonTopMargin
Definition qwizard.cpp:53
QT_REQUIRE_CONFIG(wizard)