[Qt-interest] text with numbers under each tickmarks in QSlider
Serge
mb0 at km.ru
Wed Jun 24 12:23:45 CEST 2009
I've made such a class:
class YearSlider : public QSlider
{
public:
YearSlider():QSlider(Qt::Horizontal)
{
};
void paintEvent(QPaintEvent *e)
{
QSlider::paintEvent(e);
QStyle *st = style();
QPainter p(this);
int v = this->minimum();
QStyleOptionSlider slider;
slider.initFrom(this);
int len = st->pixelMetric(QStyle::PM_SliderLength, &slider, this);
int available = st->pixelMetric(QStyle::PM_SliderSpaceAvailable,
&slider, this);
QRect r;
p.drawText(rect(), Qt::TextDontPrint, QString::number(9999), &r);
while (v<this->maximum())
{
QString vs = QString::number(v);
int left = QStyle::sliderPositionFromValue(minimum(), maximum(), v,
available) + len;
int left_next = QStyle::sliderPositionFromValue(minimum(), maximum(),
v+tickInterval(), available);
QPoint pos(left,rect().bottom());
int right = left+r.width();
if (right<rect().right() && right<left_next)
p.drawText(pos,vs);
v+=this->tickInterval();
}
};
};
Serge wrote:
> Hi,
>
> i need a QSlider with text labels with values under each tickmark.
> If override paintEvent and draw text labels myself, how can i detect
> position and value of each tickmark?
>
> Are there some ready widgets, which i could use?
>
> --
> Serge
More information about the Qt-interest-old
mailing list