blob: ce95e615c6ea8f5db7716a597f0a8351ad730550 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qquickradiobutton_p.h"
#include "qquickcontrol_p_p.h"
#include "qquickabstractbutton_p_p.h"
#include <QtGui/qpa/qplatformtheme.h>
QT_BEGIN_NAMESPACE
/*!
\qmltype RadioButton
\inherits AbstractButton
//! \nativetype QQuickRadioButton
\inqmlmodule QtQuick.Controls
\since 5.7
\ingroup qtquickcontrols-buttons
\brief Exclusive radio button that can be toggled on or off.
\image qtquickcontrols-radiobutton.gif
RadioButton presents an option button that can be toggled on (checked) or
off (unchecked). Radio buttons are typically used to select one option
from a set of options.
RadioButton inherits its API from \l AbstractButton. For instance,
you can set \l {AbstractButton::text}{text} and react to
\l {AbstractButton::clicked}{clicks} using the AbstractButton API.
The state of the radio button can be set with the
\l {AbstractButton::}{checked} property.
Radio buttons are \l {AbstractButton::autoExclusive}{auto-exclusive}
by default. Only one button can be checked at any time amongst radio
buttons that belong to the same parent item; checking another button
automatically unchecks the previously checked one. For radio buttons
that do not share a common parent, ButtonGroup can be used to manage
exclusivity.
\l RadioDelegate is similar to RadioButton, except that it is typically
used in views.
\code
ColumnLayout {
RadioButton {
checked: true
text: qsTr("First")
}
RadioButton {
text: qsTr("Second")
}
RadioButton {
text: qsTr("Third")
}
}
\endcode
\sa ButtonGroup, {Customizing RadioButton}, {Button Controls}, RadioDelegate
*/
class Q_QUICKTEMPLATES2_EXPORT QQuickRadioButtonPrivate : public QQuickAbstractButtonPrivate
{
Q_DECLARE_PUBLIC(QQuickRadioButton)
public:
QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::RadioButton); }
};
QQuickRadioButton::QQuickRadioButton(QQuickItem *parent)
: QQuickAbstractButton(*(new QQuickRadioButtonPrivate), parent)
{
setCheckable(true);
setAutoExclusive(true);
}
QFont QQuickRadioButton::defaultFont() const
{
return QQuickTheme::font(QQuickTheme::RadioButton);
}
#if QT_CONFIG(accessibility)
QAccessible::Role QQuickRadioButton::accessibleRole() const
{
return QAccessible::RadioButton;
}
#endif
QT_END_NAMESPACE
#include "moc_qquickradiobutton_p.cpp"
|