Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相同字体的不同实际字体大小';Qt 5中的s点大小_Qt_Svg_Fonts_Qt5_Dpi - Fatal编程技术网

相同字体的不同实际字体大小';Qt 5中的s点大小

相同字体的不同实际字体大小';Qt 5中的s点大小,qt,svg,fonts,qt5,dpi,Qt,Svg,Fonts,Qt5,Dpi,我用qgraphicscene来画一些东西。查看视图中的spinbox 字体的点大小是14,让我的屏幕是96 dpi。看起来不错 当我使用QSvgGenerator将场景导出到SVG时,我将分辨率设置为150。在绘图中,我使用给定的dpi计算所有字体,并使用setPointSize()设置字体大小,因此文本的比例应与屏幕上的比例相同 但我看到的是: 我在SVG中绘制文本的任何地方,都可以看到qPaint::drawText()或QTextDocument::drawContents(),具有

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

字体的点大小是14,让我的屏幕是96 dpi。看起来不错

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

但我看到的是:

我在SVG中绘制文本的任何地方,都可以看到
qPaint::drawText()
QTextDocument::drawContents()
,具有相同点大小的字体实际上比屏幕上的字体大一点

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


另外,在PDF查看器中,微调框的大小略有不同是一种缩放。查看文本的比例
1
。SVG中的字体大约大4磅

在SVG中,一切正常。所有尺寸都正确。问题在于在屏幕上绘制,因为当绘制设置了点大小的文本时,
qPaint
使用的DPI小于屏幕的物理DPI。我猜QPaint在某些地方使用了硬编码的DPI。

当然,我可以通过在SVG中渲染时将字体大小减小到~4磅来解决这个问题,但我认为这不是一个好主意。SVG与分辨率无关。我不清楚您为什么试图更改DPI并重新计算所有尺寸。您能解释一下吗?谁告诉您的?分辨率:int此属性保存生成输出的分辨率。分辨率以每英寸点数指定,用于计算SVG图形的物理大小。Qt4.5中引入了此属性。