qpainter 斜线 锯齿_qt – QPainter :: rotate禁用绘制文本的抗锯齿

我使用QPainter :: setRenderHint(QPainter :: Antialiasing,true)告诉Qt我希望它能解决我做的任何绘图(在这种情况下,使用drawText()绘制的文本).

这工作正常,文本看起来很好,直到我想旋转我正在绘制的像素图,例如

Painter.translate(0, height());

Painter.rotate(-90);

(将QPainter逆时针旋转90度并将其重新放回视图中)

对rotate()的调用似乎禁用了任何绘制文本的抗锯齿 – 文本以正确的旋转绘制但没有抗锯齿.其他事情似乎未受影响 – 例如drawLine()仍然绘制一个很好的抗锯齿线.

知道我做错了什么吗?

编辑:不出所料,将文本添加到路径,然后填充该路径给我抗锯齿,旋转文本.如果可能的话,我宁愿避开这条路线.

编辑(再次):我尝试在我正在使用的字体上使用QFont :: setStyleStrategy(QFont :: PreferAntialias),没有任何效果.然而,一些更多的实验表明,像Arial这样的基本字体在旋转时仍然会产生抗锯齿文本,而我的自定义字体(Swiss721 BlkCn BT,对于任何感兴趣的人)都不会.此外,虽然Windows 7上存在此问题,但在Ubuntu上运行时我没有遇到同样的问题. This FAQ article似乎暗示Qt看起来主机操作系统处理字体抗锯齿,所以Windows在处理这种特定字体(这是一个TrueType,就像Arial)的渲染时会遇到什么样的问题?

编辑(我保证最后一次):将字体大小提高到16pt或更高可以解决问题.似乎问题是将我的特定字体渲染到16pt以下 – 可能与上面博客文章中提到的内容有关?:

On Windows 2000 fonts are usually not antialiased within a certain range (say sizes 8-16) to make text more crisp and readable.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值