如何在Qslider上的自定义位置放置刻度



嗨,我试图实现一个自定义的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);
}

这可能包含一些错误,但它应该很好地说明了这个想法。你也可以看到这个问题。好运!

相关内容

  • 没有找到相关文章

最新更新