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:427
void setSideWidget(QWidget *widget)
Definition qwizard.cpp:433
QWatermarkLabel(QWidget *parent, QWidget *sideWidget)
Definition qwizard.cpp:421
QWidget * sideWidget() const
Definition qwizard.cpp:444
The QWidgetItem class is a layout item that represents a widget.
Definition qlayoutitem.h:87
QWizardAntiFlickerWidget(QWizard *wizard, QWizardPrivate *)
Definition qwizard.cpp:508
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:390
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::WizardOptions wizardOptions)
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:468
void _q_maybeEmitCompleteChanged()
Definition qwizard.cpp:483
QMap< int, QString > buttonCustomTexts
Definition qwizard.cpp:472
void _q_updateCachedCompleteState()
Definition qwizard.cpp:491
bool cachedIsComplete() const
Definition qwizard.cpp:475
QPixmap pixmaps[QWizard::NPixmaps]
Definition qwizard.cpp:466
QList< QWizardField > pendingFields
Definition qwizard.cpp:467
The QWizardPage class is the base class for wizard pages.
Definition qwizard.h:185
QMap< int, QString > buttonCustomTexts
Definition qwizard.cpp:575
QList< int > history
Definition qwizard.cpp:564
QMap< QString, int > fieldIndexMap
Definition qwizard.cpp:562
void setStyle(QStyle *style)
Definition qwizard.cpp:1707
PageMap pageMap
Definition qwizard.cpp:560
QGridLayout * mainLayout
Definition qwizard.cpp:607
QList< QWizardDefaultProperty > defaultPropertyTable
Definition qwizard.cpp:563
QAbstractButton * commit
Definition qwizard.cpp:587
bool buttonLayoutContains(QWizard::WizardButton which)
Definition qwizard.cpp:1505
void updateCurrentPage()
Definition qwizard.cpp:1324
void _q_updateButtonStates()
Definition qwizard.cpp:1629
QVBoxLayout * pageVBoxLayout
Definition qwizard.cpp:605
QWatermarkLabel * watermarkLabel
Definition qwizard.cpp:598
QAbstractButton * cancel
Definition qwizard.cpp:589
QWizardLayoutInfo layoutInfoForCurrentPage()
Definition qwizard.cpp:868
bool startSetByUser
Definition qwizard.cpp:566
void connectButton(QWizard::WizardButton which) const
Definition qwizard.cpp:1393
void removeFieldAt(int index)
Definition qwizard.cpp:753
QAbstractButton * next
Definition qwizard.cpp:586
QAbstractButton * help
Definition qwizard.cpp:590
QAbstractButton * back
Definition qwizard.cpp:585
QLabel * subTitleLabel
Definition qwizard.cpp:602
QFrame * pageFrame
Definition qwizard.cpp:600
QLabel * titleLabel
Definition qwizard.cpp:601
void recreateLayout(const QWizardLayoutInfo &info)
Definition qwizard.cpp:929
QWizardAntiFlickerWidget * antiFlickerWidget
Definition qwizard.cpp:594
QAbstractButton * finish
Definition qwizard.cpp:588
QWizardHeader * headerWidget
Definition qwizard.cpp:597
void updateLayout()
Definition qwizard.cpp:1203
QHBoxLayout * buttonLayout
Definition qwizard.cpp:606
void updateMinMaxSizes(const QWizardLayoutInfo &info)
Definition qwizard.cpp:1288
void _q_emitCustomButtonClicked()
Definition qwizard.cpp:1617
void setButtonLayout(const QWizard::WizardButton *array, int size)
Definition qwizard.cpp:1472
bool isVistaThemeEnabled() const
Definition qwizard.cpp:1590
void updatePixmap(QWizard::WizardPixmap which)
Definition qwizard.cpp:1510
QWidget * sideWidget
Definition qwizard.cpp:599
void _q_handleFieldObjectDestroyed(QObject *)
Definition qwizard.cpp:1680
void switchToPage(int newId, Direction direction)
Definition qwizard.cpp:768
QList< QWizard::WizardButton > buttonsCustomLayout
Definition qwizard.cpp:577
void enableUpdates()
Definition qwizard.cpp:1608
int disableUpdatesCount
Definition qwizard.cpp:571
QPixmap defaultPixmaps[QWizard::NPixmaps]
Definition qwizard.cpp:580
QWidget * placeholderWidget2
Definition qwizard.cpp:596
QWizardRuler * bottomRuler
Definition qwizard.cpp:603
Qt::TextFormat subTitleFmt
Definition qwizard.cpp:579
void updateButtonTexts()
Definition qwizard.cpp:1403
void updateButtonLayout()
Definition qwizard.cpp:1432
QList< QWizardField > fields
Definition qwizard.cpp:561
bool ensureButton(QWizard::WizardButton which) const
Definition qwizard.cpp:1364
void updatePalette()
Definition qwizard.cpp:1264
bool buttonsHaveCustomLayout
Definition qwizard.cpp:576
void cleanupPagesNotInHistory()
Definition qwizard.cpp:717
QAbstractButton * btns[QWizard::NButtons]
Definition qwizard.cpp:592
Qt::TextFormat titleFmt
Definition qwizard.cpp:578
void disableUpdates()
Definition qwizard.cpp:1599
QWidget * placeholderWidget1
Definition qwizard.cpp:595
void addField(const QWizardField &field)
Definition qwizard.cpp:731
QWizardLayoutInfo layoutInfo
Definition qwizard.cpp:570
QWizardRuler(QWidget *parent=nullptr)
Definition qwizard.cpp:414
The QWizard class provides a framework for wizards.
Definition qwizard.h:20
Combined button and popup list for selecting options.
QT_BEGIN_NAMESPACE constexpr int QLAYOUTSIZE_MAX
Definition qlayoutitem.h:17
static const char * buttonSlots(QWizard::WizardButton which)
Definition qwizard.cpp:844
static QString buttonDefaultText(int wstyle, int which, const QWizardPrivate *wizardPrivate)
Definition qwizard.cpp:625
const char className[16]
Definition qwizard.cpp:100
static QString object_name_for_button(QWizard::WizardButton which)
Definition qwizard.cpp:1338
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)