我正在Qt4中创建一些图形数据显示小部件,我想使用QGraphicsScene
创建QGraphicsItem
来呈现数据项。
然而,我想在小部件中添加一些控件(例如滚动条、缩放和其他按钮-我希望以类似于Google地图的方式,将数据显示在小部件之上,并显示在它们之上)。因此,我认为将它们添加到场景中可能是可行的(可能作为一个QGraphicsGroupItem
的子项,该项将显示在数据之上)。但是,当我调整整个小部件的大小时,我希望它们也能移动和调整大小,因此我应该使用QGraphicsLayout
进行管理。但是这时我发现事情变得非常复杂。
问题在于,使用QGraphicsLayout
时有以下约束:
- 只有
QGraphicsWidget
可以由布局管理 QGraphicsLayout
只能用于管理QGraphicsWidget
的子项
这意味着我必须将我的控件创建为QGraphicsWidget
,将一个顶层QGraphicsWidget
添加到数据小部件中,并自己管理这个顶层小部件的大小。
因此,我想问:
使用经典方法(即为所有控件使用普通的小部件,并仅使用
QGraphicsScene
来显示数据)不是更合理吗?在这种情况下,使用
QGraphicsScene
是否有任何优势(如性能或简单性...)?如何使用
QGraphicsScene
来利用它的优点?