13 this->setRange(1, 1000);
20 this->setTickInterval(50);
22 this->setOrientation(Qt::Horizontal);
23 this->setMinimumWidth(180);
24 this->setTickPosition(QSlider::TicksAbove);
103 QSlider::paintEvent(ev);
104 auto painter =
new QPainter(
this);
105 painter->setPen(QPen(QColor(123,123,123),2));
107 auto rect = this->geometry();
109 int numTicks = std::max((
maximum() -
minimum()) / tickInterval(), 1);
111 QFontMetrics fontMetrics = QFontMetrics(this->font());
115 int fontHeight = fontMetrics.height();
117 for (
int i = 0; i <= numTicks; i++) {
119 int tickNum =
minimum() + (tickInterval() * i);
121 auto tickX = (((rect.width() - 10.0f) / (
maximum() -
minimum()))* tickInterval() * i) - (fontMetrics.horizontalAdvance(QString::number(tickNum)) / 2);
123 auto tickY = (rect.height() + fontHeight) / 2;
125 auto tickMarkX = (((rect.width() - 10.0f) / (
maximum() -
minimum())) * tickInterval() * i);
127 painter->drawText(QPoint(tickX + 19, tickY - 7), QString::number(tickNum));
128 painter->drawLine(QPoint(tickMarkX + 6, rect.height() - 12), QPoint(tickMarkX + 6, rect.height()));
157 QFontMetrics fontMetrics = QFontMetrics(this->font());
158 int labelWidth = fontMetrics.horizontalAdvance(QString::number(this->value()))+fontMetrics.horizontalAdvance(
"0");
165 m_displayLabel->setStyleSheet(
"QLabel{background:#2b2b2b;color:#ffffff;}");
168 QSlider::mouseMoveEvent(event);