Привет, я попытался реализовать пользовательский QSlider, но тики всегда находятся в intervalls, и мне нужно поместить их в определенные места. Я понятия не имею, как действовать.Как поставить тики в пользовательских местах на Qslider?
1
A
ответ
3
Если вы хотите изменить интервалы метки, вы можете использовать QSlider:setTickInterval().
Из документации:
tickInterval: INT
Это свойство содержит интервал между отметки времени.
Это интервал значений, а не интервал пикселей. Если он равен 0, ползунок будет выбирать между singleStep() и pageStep(). Значение по умолчанию равно 0.
Если вы хотите метки на нерегулярные промежутки времени, вы будете нуждаться, чтобы переопределить paint()
(see example).
Это некоторый непроверенный пример код:
void MyWidget::paintEvent(QPaintEvent *)
{
QSlider::paint(); // Paints the slider like normal
// Add your custom tick locations
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::darkGreen);
painter.drawRect(1, 2, 6, 4);
painter.setPen(Qt::darkGray);
painter.drawLine(2, 8, 6, 2);
}
Это, вероятно, содержит несколько ошибок, но она должна иллюстрировать идею красиво. Вы также можете увидеть this question. Удачи!
Большое спасибо, это очень помогло – user3420412