2017-03-14 52 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