Qt 使用QML或C+实现+;?

Qt 使用QML或C+实现+;?,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,我最近刚开始学习Qt,发现QML对于实现UI组件非常有趣。在项目真正开始之前,我有一些问题: 对于一个新开始的项目,我应该只使用QML吗?QML设计用于取代QWidget吗?) LI>如果我和QML一起,还有什么必须用C++实现吗?或者更好地用C++实现更好的性能?(我知道一些定制的UI组件可以通过插件集成)QML和C++控件之间的关系是什么?李> 对于性能或渲染问题,QML是否比本地C++窗口更好? 当你以“我应该使用”开始提问时,这是一个很好的提示,说明SO可能不是提问的正确地点。当答案

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

  • 对于一个新开始的项目,我应该只使用QML吗?QML设计用于取代QWidget吗?)
  • <> LI>如果我和QML一起,还有什么必须用C++实现吗?或者更好地用C++实现更好的性能?(我知道一些定制的UI组件可以通过插件集成)QML和C++控件之间的关系是什么?李> 对于性能或渲染问题,QML是否比本地C++窗口更好?
当你以“我应该使用”开始提问时,这是一个很好的提示,说明SO可能不是提问的正确地点。当答案只有“这取决于…”开头时,情况就更糟了

QML不是用来取代QWidget的。这是一种不同的技术。使用哪一个取决于您的需求

<>你是否必须在C++中实现其他的东西取决于你的项目。有些东西在C++中比较容易,有些在QML中更容易。有些东西在QML中根本不可能

<> QML与C++窗口之间没有关系。p>
在大多数情况下,QML的性能已经足够了。在几乎所有情况下,QML都用于创建用户界面。我怀疑在很多情况下,点击按钮或打开dropbox文件夹对性能至关重要。

我在今天的世界首脑会议上有机会向一些Qt专家提出了这个问题,他们普遍认为,由于QML组件渲染可以通过硬件加速来完成,因此对于要求高性能的应用程序,它是首选的性能图形,如汽车仪表盘。OTOH小部件似乎用于桌面应用程序。另一个需要考虑的问题是,虽然小部件可以使用Qss(Qt版本的Css)进行样式化,但QML组件不能

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


Eric G

基于
QWidget
的渲染存在性能限制,在使用
QPaint
风格的API时无法克服这些限制。这是许多人不了解的,因为他们对
QPainter
风格的API的过时程度并不十分熟悉。它至少可以追溯到1984年最早的MacOS,如果不是更早的话。设计时,现代GPU都是科幻小说。一般来说,没有办法使这个API运行良好。在任何给定的情况下,总有一种方法可以让它表现得很好,但没有办法概括它。Qt Quick 2的场景图是未来的、性能方面的。都是C++!通常,使用QML创建GUI,并使用JavaScript进行一些简单的计算。每当计算或操作复杂时,或者JavaScript对你来说不够,所以使用C++。也可以在QML文件中使用QtQuick控件。请记住,MVC方法是QML+C++应用程序的良好选择。