14void QQuickStyleItemDial::connectToControl()
const
16 QQuickStyleItem::connectToControl();
17 auto dial = control<QQuickDial>();
18 connect(dial, &QQuickDial::fromChanged,
this, &QQuickStyleItem::markImageDirty);
19 connect(dial, &QQuickDial::toChanged,
this, &QQuickStyleItem::markImageDirty);
20 connect(dial, &QQuickDial::positionChanged,
this, &QQuickStyleItem::markImageDirty);
21 connect(dial, &QQuickDial::valueChanged,
this, &QQuickStyleItem::markImageDirty);
22 connect(dial, &QQuickDial::stepSizeChanged,
this, &QQuickStyleItem::markImageDirty);
23 connect(dial, &QQuickDial::startAngleChanged,
this, &QQuickStyleItem::markImageDirty);
24 connect(dial, &QQuickDial::endAngleChanged,
this, &QQuickStyleItem::markImageDirty);
25 connect(dial, &QQuickDial::pressedChanged,
this, &QQuickStyleItem::markImageDirty);
28StyleItemGeometry QQuickStyleItemDial::calculateGeometry()
30 QStyleOptionSlider styleOption;
31 initStyleOption(styleOption);
33 StyleItemGeometry geometry;
34 geometry.minimumSize = style()->sizeFromContents(QStyle::CT_Dial, &styleOption, QSize(0, 0));
35 geometry.implicitSize = geometry.minimumSize;
36 geometry.layoutRect = style()->subElementRect(QStyle::SE_SliderLayoutItem, &styleOption);
37 geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_Dial, &styleOption, geometry.minimumSize);
38 geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_DialFocusFrameRadius, &styleOption);
43void QQuickStyleItemDial::paintEvent(QPainter *painter)
const
45 QStyleOptionSlider styleOption;
46 initStyleOption(styleOption);
47 style()->drawComplexControl(QStyle::CC_Dial, &styleOption, painter);