首页 > 解决方案 > Qt 5中具有相同字体点大小的不同实际字体大小

问题描述

QGraphicsScene用来画一些东西。查看视图中的 spinbox。

屏幕上的旋转框

字体的磅值是 14,让我的屏幕是 96 dpi。看起来还可以。

当我使用 将场景导出为 SVG 时QSvgGenerator,我将分辨率设置为 150。在绘图中,我使用给定的 dpi 计算所有内容,并使用 设置字体大小setPointSize(),因此文本应该与屏幕上的比例相同。

但我看到的是:

SVG 中的 Spinbox

在我在 SVG 中绘制文本的任何地方,不管是 aQPainter::drawText()还是QTextDocument::drawContents(),具有相同点大小的字体实际上比屏幕上的要大一点。

我不知道出了什么问题。有任何想法吗?

PS 旋转框大小略有不同是 PDF 查看器中的缩放。看文字的比例1。SVG 中的字体大约在 4 pt 上更大。

标签: qtsvgfontsqt5dpi

解决方案


在 SVG 中一切正常。所有尺寸都是正确的。问题在于在屏幕上绘图,因为QPainter在设置点大小的情况下绘制文本时使用的 DPI 小于屏幕的物理 DPI。我猜 QPainter 在某处使用了硬编码的 DPI。


推荐阅读