Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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// Qt-Security score:significant reason:default
4
5#ifndef QGRAPHICSGRIDLAYOUTENGINE_P_H
6#define QGRAPHICSGRIDLAYOUTENGINE_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include <QtGui/private/qgridlayoutengine_p.h>
21
22#include <QtWidgets/qsizepolicy.h>
23#include <QtWidgets/qstyle.h>
24#include <QtWidgets/qstyleoption.h>
26
28
29QT_BEGIN_NAMESPACE
30
31class QGraphicsLayoutPrivate;
32
34public:
35 QGraphicsGridLayoutEngineItem(QGraphicsLayoutItem *item, int row, int columns, int rowSpan = 1, int columnSpan = 1,
36 Qt::Alignment alignment = { })
37 : QGridLayoutItem(row, columns, rowSpan, columnSpan, alignment), q_layoutItem(item) {}
38
39 virtual QLayoutPolicy::Policy sizePolicy(Qt::Orientation orientation) const override
40 {
41 QSizePolicy sizePolicy(q_layoutItem->sizePolicy());
42 return (QLayoutPolicy::Policy)((orientation == Qt::Horizontal) ? sizePolicy.horizontalPolicy()
43 : sizePolicy.verticalPolicy());
44 }
45
47 {
48 const QSizePolicy::ControlType ct = q_layoutItem->sizePolicy().controlType();
49 return (QLayoutPolicy::ControlTypes)ct;
50 }
51
52 virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const override
53 {
54 return q_layoutItem->effectiveSizeHint(which, constraint);
55 }
56
57 virtual void setGeometry(const QRectF &rect) override
58 {
59 q_layoutItem->setGeometry(rect);
60 }
61
62 virtual bool hasDynamicConstraint() const override;
63 virtual Qt::Orientation dynamicConstraintOrientation() const override;
64
65 virtual bool isEmpty() const override;
66
67 QGraphicsLayoutItem *layoutItem() const { return q_layoutItem; }
68
69protected:
70 QGraphicsLayoutItem *q_layoutItem;
71};
72
73
75{
76public:
77 QGraphicsGridLayoutEngineItem *findLayoutItem(QGraphicsLayoutItem *layoutItem) const
78 {
79 const int index = indexOf(layoutItem);
80 if (index < 0)
81 return nullptr;
82 return static_cast<QGraphicsGridLayoutEngineItem*>(q_items.at(index));
83 }
84
85 int indexOf(QGraphicsLayoutItem *item) const
86 {
87 for (int i = 0; i < q_items.size(); ++i) {
88 if (item == static_cast<QGraphicsGridLayoutEngineItem*>(q_items.at(i))->layoutItem())
89 return i;
90 }
91 return -1;
92 }
93
94 void setAlignment(QGraphicsLayoutItem *graphicsLayoutItem, Qt::Alignment alignment);
95 Qt::Alignment alignment(QGraphicsLayoutItem *graphicsLayoutItem) const;
96
97 void setStretchFactor(QGraphicsLayoutItem *layoutItem, int stretch, Qt::Orientation orientation);
98 int stretchFactor(QGraphicsLayoutItem *layoutItem, Qt::Orientation orientation) const;
99
100};
101
102QT_END_NAMESPACE
103
104#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
QGraphicsGridLayoutEngine engine
QGraphicsLayoutStyleInfo * styleInfo() const
QScopedPointer< QGraphicsLayoutStyleInfo > m_styleInfo
The QGraphicsGridLayout class provides a grid layout for managing widgets in Graphics View.
The QGraphicsLayoutItem class can be inherited to allow your custom items to be managed by layouts.
The QGraphicsWidget class is the base class for all widget items in a QGraphicsScene.
Combined button and popup list for selecting options.
QT_REQUIRE_CONFIG(thread)