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
qquickstyleitembutton.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
20
22{
23 QStyleOptionButton styleOption;
24 initStyleOption(styleOption);
25 StyleItemGeometry geometry;
26
27 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_PushButton, &styleOption, QSize(0, 0));
28 geometry.implicitSize = style()->sizeFromContents(QStyle::CT_PushButton, &styleOption, contentSize());
29 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
30 geometry.contentRect = style()->subElementRect(QStyle::SE_PushButtonContents, &styleOption);
31 geometry.layoutRect = style()->subElementRect(QStyle::SE_PushButtonLayoutItem, &styleOption);
32 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_PushButtonBevel, &styleOption, geometry.minimumSize);
33 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_PushButtonFocusFrameRadius, &styleOption);
34
35 return geometry;
36}
37
39{
40 QStyleOptionButton styleOption;
41 initStyleOption(styleOption);
42 style()->drawControl(QStyle::CE_PushButtonBevel, &styleOption, painter);
43}
44
46{
47 initStyleOptionBase(styleOption);
48 auto button = control<QQuickButton>();
49
50 if (button->isDown())
51 styleOption.state |= QStyle::State_Sunken;
52 if (!button->isFlat() && !button->isDown())
53 styleOption.state |= QStyle::State_Raised;
54 if (button->isHighlighted() || button->isChecked())
55 styleOption.state |= QStyle::State_On;
56 if (button->isFlat())
58}
59
61
62#include "moc_qquickstyleitembutton.cpp"
bool isChecked() const
\reentrant
Definition qfont.h:22
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
\inmodule QtCore\reentrant
Definition qpoint.h:25
bool isFlat() const
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
StyleItemGeometry calculateGeometry() override
QFont styleFont(QQuickItem *control) const override
void paintEvent(QPainter *painter) const override
virtual void initStyleOption(QStyleOptionButton &styleOption) const
void connectToControl() 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
@ State_On
Definition qstyle.h:72
@ State_Raised
Definition qstyle.h:68
@ CT_PushButton
Definition qstyle.h:547
@ CE_PushButtonBevel
Definition qstyle.h:172
@ CE_PushButtonLabel
Definition qstyle.h:173
@ SE_PushButtonContents
Definition qstyle.h:243
@ SE_PushButtonLayoutItem
Definition qstyle.h:294
QPushButton * button
[2]
Combined button and popup list for selecting options.
QPainter painter(this)
[7]