我无法找到一种正确的方法来绘制平滑的倾斜线,而不会在Qt中使用QPainterPath
对象将其过度像素化。
请注意,我知道在paintEvent
函数中绘制路径没有意义,为了简单起见,我把它放在那里。我正试图直接在中央部件中绘制线条。
此后是我的代码片段:
void MyObject::paintEvent(QPaintEvent *)
{
QPainterPath aPath;
aPath.moveTo(40.0, 60.0); //random values to try
aPath.lineTo(254, 354.0);
QPainter painter(this);
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine));
painter.drawPath(aPath);
}
以下是我得到的结果:
太可怕了!我可以绘制的唯一美丽的线条是水平,垂直或45°倾斜......
答案 0 :(得分:4)
如果您正在寻找绘图质量,Qt文档提供Python Fiddle(illustrative example)使用其渲染质量标志。通常,您可以使用5.X version(flags specified here),并使用5.X version(QPainter::setRenderHint()
)功能进行设置。看看您是否能够使用这些方法达到所需的质量。对于您的代码,您将寻找类似
QPainter painter(this);
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
painter.setRenderHint(QPainter::HighQualityAntialiasing, true);
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine));
painter.drawPath(aPath);