[英]How to draw a Rectangle in Qgraphicsview dynamically (runtime), using Qt4
[英]Qt4: “subview” using QGraphicsView
使用QGraphicsView / QGraphicsScene / QGraphicsItem,我需要創建另一個QGraphicsItem的多個視圖。
換句話說,在QGraphicsScene中,我需要創建多個QGraphicItems,這些QGraphicItems顯示存儲在屏幕外某個地方的其他QGraphicsItem的一部分。 這有點像模型/視圖框架,其中一個QGraphicsItem的行為類似於模型,而其他QGraphicsItems的行為類似於視圖-顯示(剪切)另一項的一部分。 (見附圖)
我怎樣才能做到這一點? 請注意,“視圖”不應為只讀。 每個視圖應對鼠標移動,鍵盤輸入做出反應,並且當模型中的某些項目發生更改時應正確重繪自身。
最愚蠢的方法是將隱藏的項目繪制到QImage上,然后在其他項目中顯示該QImage的部分。 但是,這將浪費大量內存。 還有其他方法嗎?
Qt 4.8,VC2008 Express,Windows平台。
- 編輯 -
我需要顯示場景內的場景(或屏幕外的QGraphicsItem)的部分。 這有點像3D游戲中的門戶。
經過研究,我發現(據我所知)Qt尚無(已記錄)這種情況的方法。
所以我決定寫一些我自己的方法
這實際上可能有點棘手,因為我需要處理裁剪(按形狀裁剪子項的項目)並重畫QGraphicsWidget之類的復雜組件,但據我所知可以完成。 同樣,這樣做,我將失去QGraphicsView提供的BSP優化,但是對於我的特殊情況,這應該是可以接受的折衷方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.