15void QQuickStyleItemDoubleSpinBox::connectToControl()
const
17 QQuickStyleItem::connectToControl();
18 auto spinbox = control<QQuickDoubleSpinBox>();
19 connect(spinbox->up(), &QQuickIndicatorButton::pressedChanged,
this,
20 &QQuickStyleItem::markImageDirty);
21 connect(spinbox->down(), &QQuickIndicatorButton::pressedChanged,
this,
22 &QQuickStyleItem::markImageDirty);
25StyleItemGeometry QQuickStyleItemDoubleSpinBox::calculateGeometry()
27 QStyleOptionSpinBox styleOption;
28 initStyleOption(styleOption);
29 StyleItemGeometry geometry;
31 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_SpinBox, &styleOption, QSize(0, 0));
33 if (styleOption.subControls == QStyle::SC_SpinBoxFrame) {
34 geometry.implicitSize =
35 style()->sizeFromContents(QStyle::CT_SpinBox, &styleOption, contentSize());
36 styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
37 geometry.contentRect = style()->subControlRect(QStyle::CC_SpinBox, &styleOption,
38 QStyle::SC_SpinBoxEditField);
39 geometry.layoutRect = style()->subElementRect(QStyle::SE_SpinBoxLayoutItem, &styleOption);
40 geometry.ninePatchMargins =
41 style()->ninePatchMargins(QStyle::CC_SpinBox, &styleOption, geometry.minimumSize);
42 geometry.focusFrameRadius =
43 style()->pixelMetric(QStyle::PM_SpinBoxFocusFrameRadius, &styleOption);
45 geometry.implicitSize = geometry.minimumSize;
51void QQuickStyleItemDoubleSpinBox::paintEvent(QPainter *painter)
const
53 QStyleOptionSpinBox styleOption;
54 initStyleOption(styleOption);
55 style()->drawComplexControl(QStyle::CC_SpinBox, &styleOption, painter);