【发布时间】:2013-09-02 08:53:04
【问题描述】:
我最近才开始学习 Qt,发现 QML 对于实现 UI 组件非常有趣。在项目真正开始之前,我有一些问题:
- 对于一个全新的项目,我应该只使用 QML 吗? QML 是为替代 QWidget 而设计的吗?)
- 如果我使用 QML,是否还有其他必须使用 C++ 实现的内容?还是用 C++ 更好地实现以获得更好的性能? (我知道一些定制的 UI 组件可以通过插件集成) QML 和 C++ 小部件有什么关系?
- 关于性能或渲染问题,QML 是否优于原生 C++ 小部件?
【问题讨论】:
-
在使用
QPainter风格的 API 时无法克服基于QWidget的渲染的性能限制。这就是许多人没有得到的,因为他们对QPainter风格的 API 的过时程度并不十分熟悉。它至少可以追溯到 1984 年的原始 MacOS,如果不是更早的话。在设计时,现代 GPU 是科幻小说。没有办法通常使这个 API 表现良好。总有办法让它在任何给定的情况下表现良好,但没有办法一概而论。 Qt Quick 2 的场景图在性能方面是未来。都是 C++! -
一般来说,使用 QML 创建您的 GUI 并使用 JavaScript 进行一些轻型计算。每当计算或操作很复杂,或者 JavaScript 对您来说还不够时,请使用 C++。您也可以在 QML 文件中使用 QtQuick 控件。请记住,MVC 方法是 QML+C++ 应用程序的不错选择。