QPainter在不同的QPaintDevices上不同地绘制文本

时间:2013-10-19 09:53:56

标签: qt qt4 qpainter qt4.8

我有三个QPaintDevice,一个Qlabel,一个QImage和一个QPrinter。当我尝试绘制像矩形这样的非文本元素时,我在所有三个设备上都获得了相同的输出。但是,当我尝试通过QPainter.drawText绘制文字时,QLabelQImage上的结果相同且QPriner输出不同。(QPrinter输出为{{1文件)。实际上PDFQlabel中的文字大小大于输出QImage文件中的文字大小。这是差异的原因吗?

1 个答案:

答案 0 :(得分:0)

差异很可能是因为分辨率设置。见enum QPrinter::PrinterMode

此外,QPrintSupport类文档说明

  

注意:在QPrinter设备上渲染文本时,重要的是   意识到当用点指定时,文本的大小是   独立于为设备本身指定的分辨率。   因此,指定字体大小(以像素为单位)可能很有用   将文本与图形组合以确保它们的相对大小   你期待什么。

相关问题