【发布时间】:2015-05-26 20:54:33
【问题描述】:
您好,我尝试实现自定义 QSlider,但刻度总是在间隔中,我需要将它们放在特定位置。我不知道如何继续。
【问题讨论】:
标签: c++ qt user-interface qslider
您好,我尝试实现自定义 QSlider,但刻度总是在间隔中,我需要将它们放在特定位置。我不知道如何继续。
【问题讨论】:
标签: c++ qt user-interface qslider
如果您只想更改刻度线间隔,可以使用QSlider:setTickInterval()。
来自文档:
tickInterval : 整数
此属性保存刻度线之间的间隔。
这是一个值区间,而不是像素区间。如果为 0,滑块将在 singleStep() 和 pageStep() 之间进行选择。 默认值为 0。
如果您希望以非固定间隔进行标记,则需要覆盖 paint() (see example)。
这是一些未经测试的示例代码:
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);
}
这可能包含一些错误,但它应该很好地说明了这个想法。你也可以看到this question。祝你好运!
【讨论】: