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
qquickstyleitemgroupbox.cpp
Go to the documentation of this file.
1// Copyright (C) 2020 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
5
7
12
14{
15 QStyleOptionGroupBox styleOption;
16 initStyleOption(styleOption);
17
18 StyleItemGeometry geometry;
19 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, QSize(0, 0));
20
21 if (!control<QQuickGroupBox>()->title().isEmpty()) {
22 // We don't draw the title, but we need to take
23 // it into calculation for the control size
24 styleOption.text = QStringLiteral(" ");
26 }
27
28 geometry.implicitSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, contentSize());
29 styleOption.rect.setSize(geometry.implicitSize);
30 geometry.contentRect = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxContents);
31 geometry.layoutRect = style()->subElementRect(QStyle::SE_GroupBoxLayoutItem, &styleOption);
32 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_GroupBox, &styleOption, geometry.minimumSize);
33
34 const QQuickStyleMargins oldGroupBoxPadding = m_groupBoxPadding;
35 const QRect frame = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxFrame);
36 m_groupBoxPadding = QQuickStyleMargins(QRect(QPoint(), geometry.implicitSize), frame);
37 if (m_groupBoxPadding != oldGroupBoxPadding)
39
40 const QPointF oldLabelPos = m_labelPos;
41 m_labelPos = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxLabel).topLeft();
42 if (m_labelPos != oldLabelPos)
44 return geometry;
45}
46
48{
49 QStyleOptionGroupBox styleOption;
50 initStyleOption(styleOption);
51 style()->drawComplexControl(QStyle::CC_GroupBox, &styleOption, painter);
52}
53
54void QQuickStyleItemGroupBox::initStyleOption(QStyleOptionGroupBox &styleOption) const
55{
56 initStyleOptionBase(styleOption);
58 styleOption.lineWidth = 1;
59}
60
62{
63 return m_groupBoxPadding;
64}
65
67{
68 return m_labelPos;
69}
70
72
73#include "moc_qquickstyleitemgroupbox.cpp"
\reentrant
Definition qfont.h:22
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
\inmodule QtCore\reentrant
Definition qpoint.h:217
\inmodule QtCore\reentrant
Definition qpoint.h:25
QStyle::SubControls subControls
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
void paintEvent(QPainter *painter) const override
QFont styleFont(QQuickItem *control) const override
StyleItemGeometry calculateGeometry() override
QSize contentSize() const
static QStyle::State controlSize(QQuickItem *item)
void initStyleOptionBase(QStyleOption &styleOption) const
QQuickItem * control
static QStyle * style()
\inmodule QtCore\reentrant
Definition qrect.h:30
constexpr void setSize(const QSize &s) noexcept
Sets the size of the rectangle to the given size.
Definition qrect.h:387
\inmodule QtCore
Definition qsize.h:25
QStyle::SubControls subControls
\variable QStyleOptionFrame::features
@ CT_GroupBox
Definition qstyle.h:567
@ CE_HeaderLabel
Definition qstyle.h:204
@ CC_GroupBox
Definition qstyle.h:339
@ SE_GroupBoxLayoutItem
Definition qstyle.h:301
@ SC_GroupBoxContents
Definition qstyle.h:392
@ SC_GroupBoxLabel
Definition qstyle.h:391
@ SC_GroupBoxFrame
Definition qstyle.h:393
Combined button and popup list for selecting options.
#define QStringLiteral(str)
#define emit
QString title
[35]
QPainter painter(this)
[7]
QFrame frame
[0]