3

我最近才开始学习 Qt,发现 QML 对于实现 UI 组件非常有趣。在项目真正开始之前,我有一些问题:

  • 对于一个新的开始项目,我应该只使用 QML 吗?QML 是为替代 QWidget 而设计的吗?)
  • 如果我使用 QML,是否还有其他必须用 C++ 实现的东西?还是用 C++ 更好地实现以获得更好的性能?(我知道一些定制的 UI 组件可以通过插件集成) QML 和 C++ 小部件有什么关系?
  • 至于性能或渲染问题,QML 是否比原生 C++ 小部件更好?
4

2 回答 2

4

当您以“我应该使用”作为问题的开头时,这是一个很好的暗示,表明 SO 可能不是问它的正确位置。更何况只有答案,以“这取决于……”开头。

QML 并非旨在取代 QWidget。这是一种不同的技术。使用哪一种,取决于您的要求。

您是否必须在 C++ 中实现额外的东西取决于您的项目。有些事情在 C++ 中更容易,而在 QML 中有些事情。有些东西在 QML 中根本不可能。

QML 和 C++ 小部件之间没有关系。

QML 的性能在大多数情况下是绰绰有余的。几乎在所有情况下,QML 都用于创建用户界面。我怀疑在很多情况下单击按钮或打开保管箱文件夹对性能至关重要。

于 2013-09-02T16:46:29.450 回答
1

我有机会在今天的世界峰会上向几位 Qt 专家提出这个问题,普遍的看法是,因为 QML 组件渲染可以通过硬件加速完成,所以它是需要高性能图形的应用程序的首选,例如汽车仪表板。OTOH 小部件似乎用于桌面应用程序。另一个考虑因素是,虽然小部件可以使用 Qss(Qt 的 Css 版本)设置样式,但 QML 组件不能。

在基于 QML 的应用程序中,计算密集型函数通常用 C++ 编写。

高温下,

埃里克·G

于 2016-10-20T04:40:52.447 回答