用QML或C ++实现?

时间:2013-09-02 08:53:04

标签: qt qml qt5 qtquick2

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

  • 对于一个全新的项目,我应该只使用QML吗? QML是否设计用于替换QWidget?)
  • 如果我使用QML,还有什么必须用C ++实现吗?或者更好地使用C ++实现更好的性能? (我知道一些自定义的UI组件可以通过插件集成)QML和C ++小部件之间的关系是什么?
  • 至于性能或渲染问题,QML是否优于原生C ++小部件?

2 个答案:

答案 0 :(得分:4)

当你用'我应该使用'开始一个问题时,这是一个很好的暗示,SO可能不是正确的问题。更多的是只有答案,首先是“这取决于......”。

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

您是否必须在C ++中实现其他内容取决于您的项目。有些东西在C ++中比较容易,有些则在QML中。有些东西在QML中是不可能的。

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

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

答案 1 :(得分:0)

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

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

HTH,

Eric G