Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickstyleitemspinbox.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#include <QtQuickTemplates2/private/qquickindicatorbutton_p.h>
6
8
10{
12}
13
15{
17 auto spinbox = control<QQuickSpinBox>();
20}
21
23{
24 QStyleOptionSpinBox styleOption;
25 initStyleOption(styleOption);
26 StyleItemGeometry geometry;
27
28 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_SpinBox, &styleOption, QSize(0, 0));
29
30 if (styleOption.subControls == QStyle::SC_SpinBoxFrame) {
32 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
35 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_SpinBox, &styleOption, geometry.minimumSize);
36 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_SpinBoxFocusFrameRadius, &styleOption);
37 } else {
38 geometry.implicitSize = geometry.minimumSize;
39 }
40
41 return geometry;
42}
43
45{
46 QStyleOptionSpinBox styleOption;
47 initStyleOption(styleOption);
49}
50
51void QQuickStyleItemSpinBox::initStyleOption(QStyleOptionSpinBox &styleOption) const
52{
53 initStyleOptionBase(styleOption);
54 auto spinbox = control<QQuickSpinBox>();
55
56 switch (m_subControl) {
57 case Frame:
59 styleOption.frame = true;
60 break;
61 case Up:
63 break;
64 case Down:
66 break;
67 }
68
69 if (spinbox->up()->isPressed()) {
71 styleOption.state |= QStyle::State_Sunken;
72 } else if (spinbox->down()->isPressed()) {
74 styleOption.state |= QStyle::State_Sunken;
75 }
76
79}
80
82
83#include "moc_qquickstyleitemspinbox.cpp"
\reentrant
Definition qfont.h:20
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2823
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
\inmodule QtCore\reentrant
Definition qpoint.h:23
QStyle::SubControls subControls
QStyle::SubControls activeSubControls
virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const =0
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr) const =0
virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const =0
virtual QFont font(ControlElement element, const QStyle::State state) const =0
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const =0
virtual QRect subElementRect(SubElement subElement, const QStyleOption *option) const =0
virtual QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const =0
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
void paintEvent(QPainter *painter) const override
StyleItemGeometry calculateGeometry() override
void connectToControl() const override
QFont styleFont(QQuickItem *control) const override
virtual void connectToControl() const
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
\inmodule QtCore
Definition qsize.h:25
@ State_Sunken
Definition qstyle.h:69
@ CT_SpinBox
Definition qstyle.h:560
@ CE_ComboBoxLabel
Definition qstyle.h:221
@ CC_SpinBox
Definition qstyle.h:332
@ SE_SpinBoxLayoutItem
Definition qstyle.h:297
@ SC_SpinBoxDown
Definition qstyle.h:360
@ SC_SpinBoxUp
Definition qstyle.h:359
@ SC_SpinBoxFrame
Definition qstyle.h:361
@ SC_SpinBoxEditField
Definition qstyle.h:362
Combined button and popup list for selecting options.
QPainter painter(this)
[7]