3 #include <QStyleOption> 18 e.position = position;
25 QStyleOptionSlider opt;
26 initStyleOption(&opt);
27 QRect gr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove,
this);
28 QRect sr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle,
this);
29 int sliderMin, sliderMax, sliderLength;
31 if (orientation() == Qt::Horizontal) {
32 sliderLength = sr.width();
34 sliderMax = gr.right() - sliderLength + 1;
36 sliderLength = sr.height();
38 sliderMax = gr.bottom() - sliderLength + 1;
41 return QStyle::sliderPositionFromValue(minimum(), maximum(), pos, sliderMax - sliderMin, opt.upsideDown) + sliderLength/2.0;
46 QStyleOptionSlider opt;
47 initStyleOption(&opt);
48 QRect gr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove,
this);
51 for(
int i=0;i<
markers.size();i++){
53 if(orientation() == Qt::Horizontal){
54 painter->drawLine(pos,gr.top(),pos,gr.bottom());
56 painter->drawLine(gr.left(),pos,gr.right(),pos);
64 QSlider::paintEvent(e);
void addMarker(int position, std::string comment="")
void paintEvent(QPaintEvent *)
void paint_p(QPainter *painter)
RockSlider(QWidget *parent)
int rangeValueToPixelPos(int pos) const
std::vector< Entry > markers