File indexing completed on 2026-10-02 09:19:39
0001
0002
0003
0004
0005 #ifndef QGRAPHICSLAYOUTITEM_H
0006 #define QGRAPHICSLAYOUTITEM_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qscopedpointer.h>
0010 #include <QtWidgets/qsizepolicy.h>
0011 #include <QtGui/qevent.h>
0012
0013 QT_REQUIRE_CONFIG(graphicsview);
0014
0015 QT_BEGIN_NAMESPACE
0016
0017 class QGraphicsLayoutItemPrivate;
0018 class QGraphicsItem;
0019 class Q_WIDGETS_EXPORT QGraphicsLayoutItem
0020 {
0021 public:
0022 QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false);
0023 virtual ~QGraphicsLayoutItem();
0024
0025 void setSizePolicy(const QSizePolicy &policy);
0026 void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType);
0027 QSizePolicy sizePolicy() const;
0028
0029 void setMinimumSize(const QSizeF &size);
0030 inline void setMinimumSize(qreal w, qreal h);
0031 QSizeF minimumSize() const;
0032 void setMinimumWidth(qreal width);
0033 inline qreal minimumWidth() const;
0034 void setMinimumHeight(qreal height);
0035 inline qreal minimumHeight() const;
0036
0037 void setPreferredSize(const QSizeF &size);
0038 inline void setPreferredSize(qreal w, qreal h);
0039 QSizeF preferredSize() const;
0040 void setPreferredWidth(qreal width);
0041 inline qreal preferredWidth() const;
0042 void setPreferredHeight(qreal height);
0043 inline qreal preferredHeight() const;
0044
0045 void setMaximumSize(const QSizeF &size);
0046 inline void setMaximumSize(qreal w, qreal h);
0047 QSizeF maximumSize() const;
0048 void setMaximumWidth(qreal width);
0049 inline qreal maximumWidth() const;
0050 void setMaximumHeight(qreal height);
0051 inline qreal maximumHeight() const;
0052
0053 virtual void setGeometry(const QRectF &rect);
0054 QRectF geometry() const;
0055 virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const;
0056 QRectF contentsRect() const;
0057
0058 QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
0059
0060 virtual void updateGeometry();
0061
0062 virtual bool isEmpty() const;
0063 QGraphicsLayoutItem *parentLayoutItem() const;
0064 void setParentLayoutItem(QGraphicsLayoutItem *parent);
0065
0066 bool isLayout() const;
0067 QGraphicsItem *graphicsItem() const;
0068 bool ownedByLayout() const;
0069
0070 protected:
0071 void setGraphicsItem(QGraphicsItem *item);
0072 void setOwnedByLayout(bool ownedByLayout);
0073 QGraphicsLayoutItem(QGraphicsLayoutItemPrivate &dd);
0074
0075 virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0;
0076 QScopedPointer<QGraphicsLayoutItemPrivate> d_ptr;
0077
0078 private:
0079 QSizeF *effectiveSizeHints(const QSizeF &constraint) const;
0080 Q_DECLARE_PRIVATE(QGraphicsLayoutItem)
0081
0082 friend class QGraphicsLayout;
0083 };
0084
0085 #ifndef Q_QDOC
0086 Q_DECLARE_INTERFACE(QGraphicsLayoutItem, "org.qt-project.Qt.QGraphicsLayoutItem")
0087 #endif
0088
0089 inline void QGraphicsLayoutItem::setMinimumSize(qreal aw, qreal ah)
0090 { setMinimumSize(QSizeF(aw, ah)); }
0091 inline void QGraphicsLayoutItem::setPreferredSize(qreal aw, qreal ah)
0092 { setPreferredSize(QSizeF(aw, ah)); }
0093 inline void QGraphicsLayoutItem::setMaximumSize(qreal aw, qreal ah)
0094 { setMaximumSize(QSizeF(aw, ah)); }
0095
0096 inline qreal QGraphicsLayoutItem::minimumWidth() const
0097 { return effectiveSizeHint(Qt::MinimumSize).width(); }
0098 inline qreal QGraphicsLayoutItem::minimumHeight() const
0099 { return effectiveSizeHint(Qt::MinimumSize).height(); }
0100
0101 inline qreal QGraphicsLayoutItem::preferredWidth() const
0102 { return effectiveSizeHint(Qt::PreferredSize).width(); }
0103 inline qreal QGraphicsLayoutItem::preferredHeight() const
0104 { return effectiveSizeHint(Qt::PreferredSize).height(); }
0105
0106 inline qreal QGraphicsLayoutItem::maximumWidth() const
0107 { return effectiveSizeHint(Qt::MaximumSize).width(); }
0108 inline qreal QGraphicsLayoutItem::maximumHeight() const
0109 { return effectiveSizeHint(Qt::MaximumSize).height(); }
0110
0111 QT_END_NAMESPACE
0112
0113 #endif