嗨,我试图实现一个自定义的QSlider,但刻度总是在间隔,我需要把它们放在特定的地方。我不知道该怎么做
如果你只是想改变刻度间隔,你可以使用QSlider:setTickInterval()。
来自文档:
tickInterval: int
该属性保存了标记之间的间隔。
这是一个值间隔,而不是像素间隔。如果为0,滑块将在singleStep()和pageStep()之间进行选择。默认值为0。
如果您想以非规则间隔标记,您将需要重写paint()
(参见示例)。
这是一些未经测试的示例代码:
void MyWidget::paintEvent(QPaintEvent* event)
{
QSlider::paintEvent(event); // 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);
}
这可能包含一些错误,但它应该很好地说明了这个想法。你也可以看到这个问题。好运!