我使用QPainter在QImage上繪製多行文本。但是,我還需要在每個角色的邊界框周圍顯示一個彩色矩形。QPainter :: drawText,獲取每個字符的包圍盒
所以我需要知道每個角色在繪製時的邊界框。
例如,對於
painter.drawText(QRect(100, 100, 200, 200), Qt::TextWordWrap, "line\nline2", &r);
我需要得到10個矩形,考慮到換行,自動換行,製表符等
例如,第二'l'
的矩形會低於第一個'l'
的矩形,而不是在'e'
的右側,因爲換行符。
有點像紅色矩形在這張照片上的座標(我已經把他們的手所以他們並不是真正正確的位置):
好的,謝謝,都試圖實現這一點。我正在考慮尋找'QPainter :: drawText'的[實際源代碼](http://qt.gitorious.org/qt/qt/blobs/4.8/src/gui/painting/qpainter.cpp),並使用那個,但事實證明它太複雜了,我甚至無法找到角色實際發生的地方。該圖由一個稱爲'qt_format_text'的非常大的函數處理,我認爲他們使用'QTextLine'作爲繪圖。 – sashoalm