Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qgraphicsgridlayoutengine_p.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
4#ifndef QGRAPHICSGRIDLAYOUTENGINE_P_H
5#define QGRAPHICSGRIDLAYOUTENGINE_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include <QtGui/private/qgridlayoutengine_p.h>
20
21#include <QtWidgets/qsizepolicy.h>
22#include <QtWidgets/qstyle.h>
23#include <QtWidgets/qstyleoption.h>
24#include "qgraphicslayoutitem.h"
25
26QT_REQUIRE_CONFIG(graphicsview);
27
29
31
33public:
35 Qt::Alignment alignment = { })
37
38 virtual QLayoutPolicy::Policy sizePolicy(Qt::Orientation orientation) const override
39 {
41 return (QLayoutPolicy::Policy)((orientation == Qt::Horizontal) ? sizePolicy.horizontalPolicy()
42 : sizePolicy.verticalPolicy());
43 }
44
45 virtual QLayoutPolicy::ControlTypes controlTypes(LayoutSide) const override
46 {
48 return (QLayoutPolicy::ControlTypes)ct;
49 }
50
51 virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const override
52 {
53 return q_layoutItem->effectiveSizeHint(which, constraint);
54 }
55
56 virtual void setGeometry(const QRectF &rect) override
57 {
59 }
60
61 virtual bool hasDynamicConstraint() const override;
62 virtual Qt::Orientation dynamicConstraintOrientation() const override;
63
64 virtual bool isEmpty() const override;
65
67
68protected:
70};
71
72
74{
75public:
77 {
78 const int index = indexOf(layoutItem);
79 if (index < 0)
80 return nullptr;
81 return static_cast<QGraphicsGridLayoutEngineItem*>(q_items.at(index));
82 }
83
85 {
86 for (int i = 0; i < q_items.size(); ++i) {
87 if (item == static_cast<QGraphicsGridLayoutEngineItem*>(q_items.at(i))->layoutItem())
88 return i;
89 }
90 return -1;
91 }
92
93 void setAlignment(QGraphicsLayoutItem *graphicsLayoutItem, Qt::Alignment alignment);
94 Qt::Alignment alignment(QGraphicsLayoutItem *graphicsLayoutItem) const;
95
96 void setStretchFactor(QGraphicsLayoutItem *layoutItem, int stretch, Qt::Orientation orientation);
98
99};
100
102
103#endif // QGRAPHICSGRIDLAYOUTENGINE_P_H
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const override
QGraphicsLayoutItem * layoutItem() const
virtual void setGeometry(const QRectF &rect) override
virtual bool isEmpty() const override
virtual Qt::Orientation dynamicConstraintOrientation() const override
virtual QLayoutPolicy::ControlTypes controlTypes(LayoutSide) const override
virtual QLayoutPolicy::Policy sizePolicy(Qt::Orientation orientation) const override
virtual bool hasDynamicConstraint() const override
QGraphicsGridLayoutEngineItem(QGraphicsLayoutItem *item, int row, int columns, int rowSpan=1, int columnSpan=1, Qt::Alignment alignment={ })
QGraphicsGridLayoutEngineItem * findLayoutItem(QGraphicsLayoutItem *layoutItem) const
void setStretchFactor(QGraphicsLayoutItem *layoutItem, int stretch, Qt::Orientation orientation)
int stretchFactor(QGraphicsLayoutItem *layoutItem, Qt::Orientation orientation) const
void setAlignment(QGraphicsLayoutItem *graphicsLayoutItem, Qt::Alignment alignment)
int indexOf(QGraphicsLayoutItem *item) const
The QGraphicsLayoutItem class can be inherited to allow your custom items to be managed by layouts.
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint=QSizeF()) const
Returns the effective size hint for this QGraphicsLayoutItem.
virtual void setGeometry(const QRectF &rect)
This virtual function sets the geometry of the QGraphicsLayoutItem to rect, which is in parent coordi...
QSizePolicy sizePolicy() const
Returns the current size policy.
QList< QGridLayoutItem * > q_items
Qt::Alignment alignment() const
qsizetype size() const noexcept
Definition qlist.h:397
const_reference at(qsizetype i) const noexcept
Definition qlist.h:446
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore
Definition qsize.h:208
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.
Definition qsizepolicy.h:18
ControlType controlType() const noexcept
rect
[4]
uint alignment
Combined button and popup list for selecting options.
Orientation
Definition qnamespace.h:98
@ Horizontal
Definition qnamespace.h:99
GLuint index
[2]
GLenum GLenum GLsizei void * row
static void layoutItem(QQuickItem *item, qreal y, qreal width)
#define QT_REQUIRE_CONFIG(feature)
QGraphicsItem * item