如何在QT QSlider上绘制图片而不是滑块?
-
20-09-2019 - |
题
我创建了一个从QSlider继承的类。我想在滑块上画一张图片(Grabber),而不是显示平原的图片。怎么做?
--
我找到答案并在收到答复后发布。在适当尊重响应者的情况下,我将选择该答复。但是,我想共享代码,以便任何具有相同问题的人都可以受益:
void InheritedSlider::paintEvent(QPaintEvent *event)
{
// uncomment to draw the parent first. Comment out to just ignore it.
//QSlider::paintEvent(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
//painter.translate(width() / 2, height() / 2);
//painter.scale(100 / 200.0, 100 / 200.0);
QPainterPath volPath;
volPath.moveTo(60.0, 40.0);
volPath.arcTo(20.0, 20.0, 40.0, 40.0, 0.0, 360.0);
volPath.moveTo(40.0, 40.0);
volPath.lineTo(40.0, 80.0);
volPath.lineTo(80.0, 80.0);
volPath.lineTo(80.0, 40.0);
volPath.closeSubpath();
painter.drawPath(volPath);
}
解决方案
你可以做到 油漆 小部件的方法。这使您可以重新绘制窗口小部件的一部分或仅一部分。
不隶属于 StackOverflow