14void QQuickStyleItemRadioButton::connectToControl()
const
16 QQuickStyleItem::connectToControl();
17 auto checkbox = control<QQuickRadioButton>();
18 connect(checkbox, &QQuickRadioButton::downChanged,
this, &QQuickStyleItem::markImageDirty);
19 connect(checkbox, &QQuickRadioButton::checkedChanged,
this, &QQuickStyleItem::markImageDirty);
22StyleItemGeometry QQuickStyleItemRadioButton::calculateGeometry()
24 QStyleOptionButton styleOption;
25 initStyleOption(styleOption);
26 StyleItemGeometry geometry;
28 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_RadioButton, &styleOption, QSize(0, 0));
29 geometry.implicitSize = geometry.minimumSize;
30 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
31 geometry.contentRect = style()->subElementRect(QStyle::SE_RadioButtonContents, &styleOption);
32 geometry.layoutRect = style()->subElementRect(QStyle::SE_RadioButtonLayoutItem, &styleOption);
33 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_RadioButton, &styleOption, geometry.minimumSize);
34 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_RadioButtonFocusFrameRadius, &styleOption);
39void QQuickStyleItemRadioButton::paintEvent(QPainter *painter)
const
41 QStyleOptionButton styleOption;
42 initStyleOption(styleOption);
43 style()->drawControl(QStyle::CE_RadioButton, &styleOption, painter);
46void QQuickStyleItemRadioButton::initStyleOption(QStyleOptionButton &styleOption)
const
48 initStyleOptionBase(styleOption);
49 auto checkbox = control<QQuickRadioButton>();
51 styleOption.state |= checkbox->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
52 styleOption.state |= checkbox->isChecked() ? QStyle::State_On : QStyle::State_Off;