gpt4 book ai didi

qt - 为什么我的线宽在具有相同 QPen 宽度的 QGraphicsScene 中看起来不同?

转载 作者:行者123 更新时间:2023-12-04 05:53:36 26 4
gpt4 key购买 nike

我用的是 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 中时,线条的宽度有时看起来彼此不同,尤其是当我放大时。谁能解释为什么会发生这种情况以及可以做些什么来解决它?

此屏幕截图演示了问题:

enter image description here

最佳答案

这是浮点舍入和场景插值/渲染的副作用。在大多数缩放级别下,场景像素与 View 像素之间不会存在完美的一对一匹配。对于分数笔宽尤其如此。您可以通过在 QGraphicsView 中打开抗锯齿功能使事情看起来更平滑一些。 :

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

other rendering hints也可以传入。

关于qt - 为什么我的线宽在具有相同 QPen 宽度的 QGraphicsScene 中看起来不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com