2010-09-13 71 views
4

如何將QGraphicsObject上的字體從點大小轉換爲像素大小?我需要這樣做,所以當我使用QGraphicsScene::render()打印我的QGraphicsScene時,字體看起來是正確的。如何從點大小計算qfont像素大小

+0

您在最終結果中尋找什麼?爲什麼默認的'render()'調用不適合你? – 2010-09-13 17:31:03

+0

我希望將場景打印在紙上,並且看起來像是在屏幕上進行的。默認的'render'會爲除文本以外的所有內容生成正確的結果。我的字體是用點來指定的,當我傳遞一個'QPainter'創建的'QPainter'時,默認'render()'使字體變大。這是我的原始問題:http://stackoverflow.com/questions/3679837/how-to-print-a-qgraphicsscene-that-has-text-and-graphics – 2010-09-13 17:57:23

回答

7

可能是班級QFontMetrics將完成這項工作。只需創建你想要的QFont,設置它的點大小。然後在你的QFont上創建QFontMetrics對象。

+0

我很難搞清楚如何使用QFontMetrics做這個。我也看過QFontInfo,它給了我當前的像素大小,但我不知道該怎麼做。到目前爲止,font.setPixelSize(font.pointSize())似乎可行,但我不知道爲什麼 - 看起來似乎不可靠。思考? – 2010-09-13 17:19:24

+0

font.setPointSize(yourPointSize); QFontMetrics fm(font); fm.height()< - 這會給你以像素爲單位的字體高度。點大小與DPI有關。所以可能在您的dpi 1px接近1點大小。 – 2010-09-14 19:06:34