我正在使用Qt(當前爲4.8)來顯示大量QGraphicsScene項目的文字圖的應用。我想用比例來說明視圖。我對比例尺的要求是它在視口控件中永久固定。每當視圖縮放變化時(放大等),它都需要更新。還有其他可能的覆蓋項目(指南針等),所以我更喜歡一個通用的解決方案。爲QGraphicsView場景創建一個永久靜態覆蓋
我已經看過解決此其前面的問題建議:
- 使用ItemIgnoresTransform
- 使用覆蓋像素圖。
我試過IgnoresTransform,但這種方式沒有正常工作:我想不出如何解決它在適當的位置(說)在視口的底角,並有一些困難獲取文本和行始終以正確的尺寸顯示。
我放棄了QGraphicsView和subclassed QGraphicsView,通過重新實現paintEvent(調用原始的一個,然後繪製頂部的重疊像素圖)添加一個重疊像素圖,以及一個對齊選項來指示它的去向。編碼一些像素圖塗料代碼在視圖上產生可用的比例。好極了! ......但它並不適用於卷軸 - 我會在整個範圍內得到「破碎」的刻度,或者根本沒有刻度。我認爲這是因爲QGraphicsView :: scrollViewportBy()使用viewport() - > scroll(),所以我想知道是否切換到ViewportSmartUpdate會有所幫助,但沒有足夠的幫助。我不想切換到ViewportFullUpdate,因爲這可能會導致應用程序速度過慢(場景中有數百萬個項目,並且需要完全重新繪製才能移動)。
所以。來自這裏的任何想法?將適應我的pixmap代碼寫入一個新的大多數透明的Widget覆蓋在視口是一個更好的方法?
感謝您的幫助......
是的,玩過後,這似乎是最好的方式。謝謝。 – rivimey