32 Q_PROPERTY(FlexboxDirection direction READ direction WRITE setDirection NOTIFY directionChanged FINAL)
33 Q_PROPERTY(FlexboxWrap wrap READ wrap WRITE setWrap NOTIFY wrapChanged FINAL)
34 Q_PROPERTY(FlexboxAlignment alignItems READ alignItems WRITE setAlignItems NOTIFY alignItemsChanged FINAL)
35 Q_PROPERTY(FlexboxAlignment alignContent READ alignContent WRITE setAlignContent NOTIFY alignContentChanged FINAL)
36 Q_PROPERTY(FlexboxJustify justifyContent READ justifyContent WRITE setJustifyContent NOTIFY justifyContentChanged FINAL)
37 Q_PROPERTY(qreal gap READ gap WRITE setGap NOTIFY gapChanged RESET resetGap FINAL)
38 Q_PROPERTY(qreal rowGap READ rowGap WRITE setRowGap NOTIFY rowGapChanged RESET resetRowGap FINAL)
39 Q_PROPERTY(qreal columnGap READ columnGap WRITE setColumnGap NOTIFY columnGapChanged RESET resetColumnGap FINAL)
41 QML_NAMED_ELEMENT(FlexboxLayout)
42 QML_ADDED_IN_VERSION(6, 10)
43 QML_ATTACHED(QQuickFlexboxLayoutAttached)
46 explicit QQuickFlexboxLayout(QQuickItem *parent =
nullptr);
47 ~QQuickFlexboxLayout();
49 enum FlexboxDirection {
55 Q_ENUM(FlexboxDirection);
119 enum FlexboxAlignment {
130 Q_ENUM(FlexboxAlignment)
133 enum FlexboxJustify {
141 Q_ENUM(FlexboxJustify)
163 FlexboxDirection direction()
const;
164 void setDirection(FlexboxDirection);
166 FlexboxWrap wrap()
const;
167 void setWrap(FlexboxWrap);
169 FlexboxAlignment alignItems()
const;
170 void setAlignItems(FlexboxAlignment);
172 FlexboxJustify justifyContent()
const;
173 void setJustifyContent(FlexboxJustify);
175 FlexboxAlignment alignContent()
const;
176 void setAlignContent(FlexboxAlignment);
182 qreal rowGap()
const;
183 void setRowGap(qreal);
186 qreal columnGap()
const;
187 void setColumnGap(qreal);
188 void resetColumnGap();
190 void componentComplete() override;
191 QSizeF sizeHint(Qt::SizeHint whichSizeHint)
const override;
192 void setAlignment(QQuickItem *, Qt::Alignment) override {}
193 void setStretchFactor(QQuickItem *,
int, Qt::Orientation) override {}
195 void invalidate(QQuickItem *childItem =
nullptr) override;
196 void updateLayoutItems() override;
197 void rearrange(
const QSizeF &) override;
200 QQuickItem *itemAt(
int index)
const override;
201 int itemCount()
const override;
204 void itemSiblingOrderChanged(QQuickItem *item) override;
205 void itemVisibilityChanged(QQuickItem *item) override;
208 static QQuickFlexboxLayoutAttached *qmlAttachedProperties(QObject *object);
209 bool isGapBitSet(QQuickFlexboxLayout::FlexboxGap gap)
const;
210 void checkAnchors(QQuickItem *item)
const;
214 void directionChanged();
216 void alignItemsChanged();
217 void alignContentChanged();
218 void justifyContentChanged();
220 void rowGapChanged();
221 void columnGapChanged();
224 void childItemsChanged();
226 friend class QQuickFlexboxLayoutAttached;
227 Q_DECLARE_PRIVATE(QQuickFlexboxLayout)
234 Q_PROPERTY(QQuickFlexboxLayout::FlexboxAlignment alignSelf READ alignSelf WRITE setAlignSelf NOTIFY alignSelfChanged FINAL)
237 QQuickFlexboxLayoutAttached(QObject *object);
239 QQuickFlexboxLayout::FlexboxAlignment alignSelf()
const;
240 void setAlignSelf(
const QQuickFlexboxLayout::FlexboxAlignment);
243 void alignSelfChanged();
247 QQuickFlexboxLayout::FlexboxAlignment m_alignSelf = QQuickFlexboxLayout::AlignAuto;