5#ifndef QGRAPHICSANCHORLAYOUT_H
6#define QGRAPHICSANCHORLAYOUT_H
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qgraphicsitem.h>
10#include <QtWidgets/qgraphicslayout.h>
16class QGraphicsAnchorPrivate;
17class QGraphicsAnchorLayout;
18class QGraphicsAnchorLayoutPrivate;
23 Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing RESET unsetSpacing)
24 Q_PROPERTY(QSizePolicy::Policy sizePolicy READ sizePolicy WRITE setSizePolicy)
26 void setSpacing(qreal spacing);
28 qreal spacing()
const;
29 void setSizePolicy(QSizePolicy::Policy policy);
30 QSizePolicy::Policy sizePolicy()
const;
33 QGraphicsAnchor(QGraphicsAnchorLayout *parent);
35 Q_DECLARE_PRIVATE(QGraphicsAnchor)
37 friend class QGraphicsAnchorLayoutPrivate;
43 QGraphicsAnchorLayout(QGraphicsLayoutItem *parent =
nullptr);
44 virtual ~QGraphicsAnchorLayout();
46 QGraphicsAnchor *addAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge,
47 QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge);
48 QGraphicsAnchor *anchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge,
49 QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge);
51 void addCornerAnchors(QGraphicsLayoutItem *firstItem, Qt::Corner firstCorner,
52 QGraphicsLayoutItem *secondItem, Qt::Corner secondCorner);
54 void addAnchors(QGraphicsLayoutItem *firstItem,
55 QGraphicsLayoutItem *secondItem,
56 Qt::Orientations orientations = Qt::Horizontal | Qt::Vertical);
58 void setHorizontalSpacing(qreal spacing);
59 void setVerticalSpacing(qreal spacing);
60 void setSpacing(qreal spacing);
61 qreal horizontalSpacing()
const;
62 qreal verticalSpacing()
const;
64 void removeAt(
int index) override;
65 void setGeometry(
const QRectF &rect) override;
66 int count()
const override;
67 QGraphicsLayoutItem *itemAt(
int index)
const override;
69 void invalidate() override;
71 QSizeF sizeHint(Qt::SizeHint which,
const QSizeF &constraint = QSizeF())
const override;
74 Q_DISABLE_COPY(QGraphicsAnchorLayout)
75 Q_DECLARE_PRIVATE(QGraphicsAnchorLayout)
77 friend class QGraphicsAnchor;
The QGraphicsAnchorLayout class provides a layout where one can anchor widgets together in Graphics V...
void setSizePolicy(QSizePolicy::Policy policy)
~QGraphicsAnchorPrivate()
QSizePolicy::Policy sizePolicy
static QGraphicsAnchorPrivate * get(QGraphicsAnchor *q)
QGraphicsAnchorLayoutPrivate * layoutPrivate
void setSpacing(qreal value)
The QGraphicsAnchor class represents an anchor between two items in a QGraphicsAnchorLayout.
QSizeF * effectiveSizeHints(const QSizeF &constraint) const
void ensureUserSizeHints()
bool hasWidthForHeight() const
void setSizeComponent(Qt::SizeHint which, SizeComponent component, qreal value)
static const QGraphicsLayoutItemPrivate * get(const QGraphicsLayoutItem *q)
void setSize(Qt::SizeHint which, const QSizeF &size)
quint32 sizeHintCacheDirty
quint32 sizeHintWithConstraintCacheDirty
static QGraphicsLayoutItemPrivate * get(QGraphicsLayoutItem *q)
QGraphicsItem * graphicsItem
QGraphicsItem * parentItem() const
QSizeF cachedSizeHints[Qt::NSizeHints]
QSizeF cachedSizeHintsWithConstraints[Qt::NSizeHints]
bool hasHeightForWidth() const
The QGraphicsLayout class provides the base class for all layouts in Graphics View.
void setDefaultSpacing(Qt::Orientation o, qreal spacing)
bool operator==(const QLayoutStyleInfo &other) const
bool operator!=(const QLayoutStyleInfo &other) const
qreal perItemSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation) const
qreal defaultSpacing(Qt::Orientation o) const
QLayoutStyleInfo(QStyle *style, QWidget *widget)
QSet< AnchorData * > negatives
QSet< AnchorData * > positives
QSimplexConstraint * constraint(const GraphPath &path) const
Combined button and popup list for selecting options.
QT_REQUIRE_CONFIG(animation)
Q_DECLARE_TYPEINFO(GraphPath, Q_RELOCATABLE_TYPE)
QT_REQUIRE_CONFIG(graphicsview)
Q_DECLARE_INTERFACE(QNetworkAccessBackendFactory, QNetworkAccessBackendFactory_iid)
virtual void updateChildrenSizes()
void refreshSizeHints(const QLayoutStyleInfo *styleInfo=nullptr)
QGraphicsLayoutItem * item
QGraphicsAnchor * graphicsAnchor
AnchorVertexPair(AnchorVertex *v1, AnchorVertex *v2, AnchorData *data)
AnchorData * m_removedAnchor
QList< AnchorData * > m_secondAnchors
QList< AnchorData * > m_firstAnchors
AnchorVertex(QGraphicsLayoutItem *item, Qt::AnchorPoint edge)
virtual ~AnchorVertex()=default
QGraphicsLayoutItem * m_item
virtual void updateChildrenSizes() override
ParallelAnchorData(AnchorData *first, AnchorData *second)
QList< QSimplexConstraint * > m_secondConstraints
bool calculateSizeHints()
QList< QSimplexConstraint * > m_firstConstraints
bool secondForward() const
virtual void updateChildrenSizes() override
const QList< AnchorData * > m_edges
SequentialAnchorData(const QList< AnchorVertex * > &vertices, const QList< AnchorData * > &edges)
void calculateSizeHints()