2017-03-14 35 views
0

我正在使用QGraphicsScene,我想創建gui元素。Qt QGraphicsScene像容器的動態GUI元素

我該如何創建一個列表容器,即遊戲環境中的庫存?

看到這裏

對於我的意思的例子。底部有一個庫存小部件,可以動態填充。

是否有任何容器類像標準列表小部件,但爲QGraphicsScene而不是?

現在我可以看到的唯一方法是繪製一個「矩形」並在其上面手動繪製和管理「正方形」......這不會是一個容器。

回答

1

每個QGraphicItem實際上都是一個容器,因爲每個項目都可以選擇編入QGraphicsItem。當你這樣做時,父母會影響其所有孩子......如果父母被移動,孩子就會隨之移動。如果在父級上設置了變換,可視性或不透明度,則這些更改也適用於子級。

基本上,你的理解是正確的;您將創建一個繪製容器大綱的父項QGraphicsItem,然後您將擁有各自繪製其圖標或任何適當項目的子項。

或者,您可以使用QGraphicsScene中的小部件,因此所有基於小部件的容器都可用。如果這是您想要去的路線,那麼請看QGraphicsWidget課程。

這是一個複雜的主題,但希望這會讓你開始。

+0

很酷,我在看QGraphicsWidget,添加一個包含QGraphicsWidgets的QGraphicsLinearLayout ...但我想添加QGraphicsItems。任何想法如何? – ovg

+0

好的,我明白了。我只是分類QGraphicsWidget,添加了一個QGraphicsLinearLayout,然後添加其他項目。沒有我希望的那麼優雅,但確定。 – ovg

+0

對於場景中小部件外觀的控制比對自定義圖形項目的控制要少,但它們確實很方便。 – goug