2

我使用 aQPainter用以下代码绘制我的小部件:

QPen pen(Qt::black, 0.6, Qt::SolidLine);
QPainter painter(this);
painter.setPen(pen);

// vertical 
painter.drawLine(startX,0,startX,50);
painter.drawLine((startX += grid),0,startX,50);
painter.drawLine((startX += grid),0,startX,50);
painter.drawLine((startX += grid),0,startX,50);
painter.drawLine((startX += grid),0,startX,50);
painter.drawLine((startX += grid),0,startX,50);

// horizontal 
pen.setWidth(0.7);
painter.setPen(pen);
painter.drawLine(0,grid*2,70,grid*2);
painter.drawLine(0,grid*4,70,grid*4);
painter.drawLine(0,grid*6,70,grid*6);
painter.drawLine(0,grid*8,70,grid*8);

当我将此项目添加到 aQGraphicsScene时,线条的宽度有时看起来彼此不同,尤其是当我放大时。谁能解释为什么会发生这种情况以及可以做些什么来解决它?

此屏幕截图演示了该问题:

在此处输入图像描述

4

1 回答 1

3

这是浮点舍入和场景插值/渲染的副作用。在大多数缩放级别,从场景像素到视图像素不会有完美的一对一匹配。对于分数笔宽度尤其如此。您可以通过在您的QGraphicsView

...
view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
....

还有其他可以传入的渲染提示。

于 2012-03-19T21:58:24.587 回答