我使用QPainter使用以下代码绘制我的小部件:
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);当我将此项目添加到QGraphicsScene中时,线条的宽度有时看起来彼此不同,特别是当我放大时。有谁能解释为什么会发生这种情况,以及可以做些什么来修复它?
此屏幕截图演示了该问题:

发布于 2012-03-20 05:58:25
这是浮点舍入和场景插值/渲染的副作用。在大多数缩放级别中,场景像素与视图像素之间不存在完美的一对一匹配。对于笔宽为分数的情况尤其如此。通过在QGraphicsView中启用抗锯齿功能,可以使效果看起来更平滑一些
...
view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
....也有可以传入的other rendering hints。
https://stackoverflow.com/questions/9777936
复制相似问题