0

我是 Qt 新手,正在探索 QPrinter / QPainter

根据文档,为了以毫米为单位打印,考虑到它的分辨率,坐标必须转换为打印机的单位。所以,我写了以下代码:

qreal printInterface::convertFromMM(qreal in)
{
    //1 inch = 25.4 mmm so
    return in * (1/25.4) * mQPrinter->resolution();
}

这适用于打印线等。

现在我必须测量文本,所以根据文档我使用了 QFontMetrics() 类。

Painter->fontMetrics().width(stringToMeasure)根据文档,问题在于以像素为单位返回宽度。我怎样才能把它翻译成mm?

任何帮助将不胜感激!

4

1 回答 1

0

刚刚发现我做错了。我可以对 FontMetrics 使用相同的规则。然而,该文档具有误导性,因为它声明它使用像素作为单位。它适合画家。

我已经使用两行测试并在其中打印文本。它在打印预览和设备上都可以测量。

谢谢你的时间!

于 2017-10-02T16:21:58.347 回答