Qt 新手。在官方 Qt 教程中,它说:
要建立一个项目,你首先必须决定你想要开发什么样的应用程序:你想要一个基于 Qt Quick 或 HTML5 或 Qt 小部件的用户界面。
我们计划用Qt做医学图像显示,也用Qt构建一个GUI应用程序来控制一个医疗设备。他们将是两个不同的项目。
我们应该为他们使用哪种Qt 项目类型?
Qt 新手。在官方 Qt 教程中,它说:
要建立一个项目,你首先必须决定你想要开发什么样的应用程序:你想要一个基于 Qt Quick 或 HTML5 或 Qt 小部件的用户界面。
我们计划用Qt做医学图像显示,也用Qt构建一个GUI应用程序来控制一个医疗设备。他们将是两个不同的项目。
我们应该为他们使用哪种Qt 项目类型?
文档说:
如果您的 UI 由少量复杂和静态元素组成,QWidgets 是更好的选择,如果您的 UI 由大量简单和动态元素组成,QML 是更好的选择。
我说:
如果您要使用桌面应用程序,我建议您使用 Qt Widgets,您不必为 QML 提供带有库的最终应用程序,整个源代码将用 C++ 编写(更快、更简单、更容易调试)。
如果您想创建手机/平板电脑(一般的触摸体验),QML 将是一个不错的选择。
我认为在 Qt Quick 和 Qt Widgets 之间没有客观正确的答案。从理论上讲,一个人应该能够使用任何一种方法复制任何 UI - 因为归根结底,他们都在幕后使用 QtGui。所以功能可能不是问题。
需要注意的一点是,Qt Quick(即 QML)被明确地设计为使 UI 编程需要更少的代码和更少的 C++ 知识。我会说它很好地实现了这个目标。
但是,归根结底,我认为这主要取决于您的开发人员已经熟悉的语言。如果你有一个 C++ 专业团队,那么我会选择 Qt Widgets——如果只是因为他们很容易上手,而且他们已经很熟悉了。(我猜是这种情况,因为您已经在为您的项目编写 C++ 代码)。
另一方面,如果您的开发人员已经非常擅长 QML(或者更一般地说,JavaScript - QML 深受其影响),那么出于同样的原因,我会选择 Qt Quick。
我知道两种类型的 Qt UI:Qt Quick 和小部件。
小部件的行为与大多数其他 UI 工具包一样,您有一个 GUI 编辑器和一个 UI 对象树。它们非常成熟,看起来像大多数标准 UI。
Qt Quick 是较新的 Qt UI 工具包。它使用特定领域的声明性语言 (QML) 来指定用户界面和用于交互的 JavaScript。还有计划在 Qt Quick 框架内提供 Qt 小部件,但我不确定该项目已经取得了多大的进展。Qt Quick 旨在提供更多动态/自定义的用户界面。
据我所知,在可预见的未来 Qt 将继续支持这两种方法,因此您选择哪一种取决于您的用例。