Qt Quick与Graphics View框架(QGraphicsScene)的比较

6
我浏览了Qt5和Qt Quick的新功能,但不太明白它与图形视图框架(QGraphicsScene)在特性上有什么区别。它使用QML,但除此之外:
  1. Qt Quick是否能做到QGraphicsScene无法做到的事情?例如粒子效果
  2. Qt Quick比QGraphicsScene更快吗?“更快”指的是显示1000个移动元素时的帧率更高吗?
我正在制作一款塔防游戏,一直在使用QGraphicsScene,现在我想知道是否应该切换到Qt Quick。
1个回答

7
Qt5和Qt Quick 2应该会有很好的性能提升,这要归功于“场景图”,它是Qt5的Qt Quick的底层引擎,基本上是从头开始编写的,以充分利用OpenGL,并将高帧率作为设计目标。
除了性能外,我认为另一个重要特点是,你可以用QML以更好的方式描述GUI、过渡、动画等。虽然有一些学习曲线,但写声明式GUI代码与编写更直接的C++代码来实现类似的事情非常不同,但完全值得。
在Qt4中,我不认为QML会给任何性能优势,因为我认为(现在没有验证)它是在QGraphicsView的顶部编写的。
因此,总结一下:选择Qt5和Qt Quick2,并学习QML来设计GUI。将游戏逻辑用C++完成以获得更好的性能(塔防游戏可能会发生很多极端情况)。
编辑:关于为什么创建场景图实现的博客(旧的,因此细节可能略有过时): http://blog.qt.io/blog/2011/05/31/qml-scene-graph-in-master/

1
你能提供任何可靠的基准测试或来源,来展示 场景图 相对于 图形视图 的性能提升吗? - problemofficer - n.f. Monica
@problemofficer 或许我添加了一个链接到一个旧博客,其中有一个基准图表,展示了一个案例中Qt4 QML1与Qt5 QML2的fps差异。 - hyde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接