2015-04-27 74 views
0

朋友你好,我調整大小和使用setTransform - 方法的QGraphicsItem旋轉QGraphicsItem,我繪製任意形狀的QGraphicsItem在其paint - 方法,當我使用setTransform法邊境擴展項目QGraphicsItem也變得更厚,我設置名稱爲QGraphicsItem,它也按比例因子變大。那麼有沒有什麼方法可以在paint method中使用drawtext來繪製項目和名稱的邊框,並保留與我指定的筆寬相同。Qtransform規模和筆Q漆設定的QGraphicsItem的寬度

回答

2

您需要用pen.setCosmetic(true)製作筆化妝品並使用此筆繪製邊框。化妝筆的寬度不取決於應用的轉換。

我建議使用QGraphicsSimpleTextItemQGraphicsTextItem在場景中繪製文本。您可以通過調用textItem->setFlag(QGraphicsItem::ItemIgnoresTransformations);來禁用文本轉換。將主圖形項目作爲文本項目的父項目可能會很方便,以便文本項目相對於主項目進行定位。

請注意,在大多數情況下不需要重新實現QGraphicsItem::paint,因爲內置的QGraphicsItem子類滿足各種需求。

+0

感謝Pavel它使用pen.setCosmetic(true)滿足我的邊界問題。 – Zing