Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickstyleitemcombobox.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
9{
11}
12
14{
16 auto comboBox = control<QQuickComboBox>();
17 connect(comboBox, &QQuickComboBox::downChanged, this, &QQuickStyleItem::markImageDirty);
18}
19
21{
22 QStyleOptionComboBox styleOption;
23 initStyleOption(styleOption);
24 StyleItemGeometry geometry;
25
26 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_ComboBox, &styleOption, QSize(0, 0));
28 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
31 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_ComboBox, &styleOption, geometry.minimumSize);
32 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_ComboBoxFocusFrameRadius, &styleOption);
33
34 return geometry;
35}
36
38{
39 QStyleOptionComboBox styleOption;
40 initStyleOption(styleOption);
42}
43
44void QQuickStyleItemComboBox::initStyleOption(QStyleOptionComboBox &styleOption) const
45{
46 initStyleOptionBase(styleOption);
47 auto comboBox = control<QQuickComboBox>();
48
50 styleOption.frame = true;
51 styleOption.state |= QStyle::State_Selected;
52 styleOption.editable = comboBox->isEditable();
53
54 if (comboBox->isDown())
55 styleOption.state |= QStyle::State_Sunken;
56 if (!comboBox->isFlat() && !comboBox->isDown())
57 styleOption.state |= QStyle::State_Raised;
58}
59
61
62#include "moc_qquickstyleitemcombobox.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
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 connectToControl() const override
void paintEvent(QPainter *painter) const override
QFont styleFont(QQuickItem *control) const override
StyleItemGeometry calculateGeometry() 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
\variable QStyleOptionToolButton::features
QStyle::SubControls subControls
QStyle::State state
@ State_Sunken
Definition qstyle.h:69
@ State_Raised
Definition qstyle.h:68
@ State_Selected
Definition qstyle.h:82
@ CT_ComboBox
Definition qstyle.h:549
@ CE_PushButtonLabel
Definition qstyle.h:173
@ CC_ComboBox
Definition qstyle.h:333
@ SE_ComboBoxLayoutItem
Definition qstyle.h:290
@ SC_ComboBoxFrame
Definition qstyle.h:364
@ SC_ComboBoxEditField
Definition qstyle.h:365
@ SC_ComboBoxArrow
Definition qstyle.h:366
Combined button and popup list for selecting options.
QPainter painter(this)
[7]