【发布时间】:2019-12-31 13:40:09
【问题描述】:
我使用QGraphicsScene 来绘制一些东西。查看视图中的 spinbox。
字体的磅值是 14,让我的屏幕是 96 dpi。看起来不错。
当我使用 QSvgGenerator 将场景导出为 SVG 时,我将分辨率设置为 150。在绘图中,我使用给定的 dpi 计算所有内容,并使用 setPointSize() 设置字体大小,因此文本应该相同在屏幕上缩放。
但我看到的是:
我在 SVG 中绘制文本的任何地方,不管是 QPainter::drawText() 还是 QTextDocument::drawContents(),相同点大小的字体实际上比屏幕上的要大一点。
我不知道出了什么问题。有什么想法吗?
附:旋转框大小略有不同是 PDF 查看器中的缩放。看文字1的比例。 SVG 中的字体大约在 4 pt 上更大。
【问题讨论】:
-
当然,我可以通过在 SVG 中渲染时将字体大小减小到 ~4 pt 来解决这个问题,但我认为这不是一个好主意。
-
SVG 与分辨率无关。我不清楚您为什么要尝试更改 DPI 并重新计算所有尺寸。你能解释一下吗?
-
谁告诉你的?
-
resolution : int 此属性保存生成输出的分辨率。分辨率以每英寸点数指定,用于计算 SVG 图形的物理尺寸。此属性是在 Qt 4.5 中引入的。