123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | // Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#ifndef QLAYOUT_H#define QLAYOUT_H#include <QtWidgets/qtwidgetsglobal.h>#include <QtCore/qobject.h>#include <QtWidgets/qlayoutitem.h>#include <QtWidgets/qsizepolicy.h>#include <QtCore/qrect.h>#include <QtCore/qmargins.h>#include <limits.h> QT_BEGIN_NAMESPACE class QLayout;class QSize;class QLayoutPrivate;class Q_WIDGETS_EXPORT QLayout :public QObject,public QLayoutItem { Q_OBJECT Q_DECLARE_PRIVATE(QLayout)Q_PROPERTY(int spacing READ spacing WRITE setSpacing)Q_PROPERTY(QMargins contentsMargins READ contentsMargins WRITE setContentsMargins RESET unsetContentsMargins)Q_PROPERTY(SizeConstraint sizeConstraint READ sizeConstraint WRITE setSizeConstraint)public:enum SizeConstraint { SetDefaultConstraint, SetNoConstraint, SetMinimumSize, SetFixedSize, SetMaximumSize, SetMinAndMaxSize };Q_ENUM(SizeConstraint)explicitQLayout(QWidget *parent =nullptr);~QLayout();virtualintspacing()const;virtualvoidsetSpacing(int);voidsetContentsMargins(int left,int top,int right,int bottom);voidsetContentsMargins(const QMargins &margins);voidunsetContentsMargins();voidgetContentsMargins(int*left,int*top,int*right,int*bottom)const; QMargins contentsMargins()const; QRect contentsRect()const;boolsetAlignment(QWidget *w,Qt::Alignment alignment);boolsetAlignment(QLayout *l,Qt::Alignment alignment);usingQLayoutItem::setAlignment;voidsetSizeConstraint(SizeConstraint); SizeConstraint sizeConstraint()const;voidsetMenuBar(QWidget *w); QWidget *menuBar()const; QWidget *parentWidget()const;voidinvalidate() override; QRect geometry()const override;boolactivate();voidupdate();voidaddWidget(QWidget *w);virtualvoidaddItem(QLayoutItem *) =0;voidremoveWidget(QWidget *w);voidremoveItem(QLayoutItem *);Qt::Orientations expandingDirections()const override; QSize minimumSize()const override; QSize maximumSize()const override;virtualvoidsetGeometry(const QRect&) override;virtual QLayoutItem *itemAt(int index)const=0;virtual QLayoutItem *takeAt(int index) =0;virtualintindexOf(const QWidget *)const;virtualintindexOf(const QLayoutItem *)const;virtualintcount()const=0;boolisEmpty()const override;QSizePolicy::ControlTypes controlTypes()const override;virtual QLayoutItem *replaceWidget(QWidget *from, QWidget *to,Qt::FindChildOptions options =Qt::FindChildrenRecursively);inttotalMinimumHeightForWidth(int w)const;inttotalHeightForWidth(int w)const; QSize totalMinimumSize()const; QSize totalMaximumSize()const; QSize totalSizeHint()const; QLayout *layout() override;voidsetEnabled(bool);boolisEnabled()const;static QSize closestAcceptableSize(const QWidget *w,const QSize &s);protected:voidwidgetEvent(QEvent *);voidchildEvent(QChildEvent *e) override;voidaddChildLayout(QLayout *l);voidaddChildWidget(QWidget *w);booladoptLayout(QLayout *layout); QRect alignmentRect(const QRect&)const;protected:QLayout(QLayoutPrivate &d, QLayout*, QWidget*);private:Q_DISABLE_COPY(QLayout)static voidactivateRecursiveHelper(QLayoutItem *item);friend class QApplicationPrivate;friend class QWidget;}; QT_END_NAMESPACE //### support old includes#include <QtWidgets/qboxlayout.h>#include <QtWidgets/qgridlayout.h>#endif// QLAYOUT_H
|