【问题标题】:Different actual font sizes with the same font's point size in Qt 5Qt 5中具有相同字体点大小的不同实际字体大小
【发布时间】: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 中引入的。

标签: qt svg fonts qt5 dpi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2013-11-18
    • 2017-04-14
    • 2013-06-23
    • 1970-01-01
    • 2015-10-29
    • 2014-02-13
    相关资源
    最近更新 更多