Привет, я пытался реализовать пользовательский QSlider, но галочки всегда в интервалах, и мне нужно разместить их в определенных местах. Я понятия не имею, как поступить.
Если вы просто хотите изменить интервалы между отметками, вы можете использовать QSlider: setTickInterval ().
Из документации:
tickInterval: int
Это свойство содержит интервал между отметками.
Это интервал значений, а не интервал в пикселях. Если это 0, ползунок будет выбирать между singleStep () и pageStep ().
Значением по умолчанию является 0.
Если вы хотите, чтобы отметки появлялись нерегулярно, вам нужно переопределить paint()
(смотри пример).
Это не проверенный пример кода:
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);
}
Это, вероятно, содержит несколько ошибок, но должно хорошо иллюстрировать идею. Вы также можете увидеть этот вопрос. Удачи!