我是新手对Qt不太了解,不太清楚Qt Quick项目和Qt Widget项目的区别。
我希望创建一个程序,绘制一个六边形的晶格,用户可以旋转、剪切、平移和缩放。它最终将成为一个MIDI控制器。哪种类型的项目更适合这个目的,为什么?
我希望它能在桌面和移动平台上运行。
我是新手对Qt不太了解,不太清楚Qt Quick项目和Qt Widget项目的区别。
我希望创建一个程序,绘制一个六边形的晶格,用户可以旋转、剪切、平移和缩放。它最终将成为一个MIDI控制器。哪种类型的项目更适合这个目的,为什么?
我希望它能在桌面和移动平台上运行。
注意:在本答案中,“Qt Widgets”指的是创建新的Qt应用程序时可选择的Qt Widgets应用程序。
这是问题首次发布七年后...但是这里是我的“客观”两分钱,以抵消此后的任何发展。
Qt Quick项目使用QML和JavaScript。后者承载了程序逻辑的大部分:事件操作(Component.onCompleted
,onClicked
等),数学等。
Qt Widgets项目使用C++代码。(PyQt和PySide是Qt的Python绑定)。
因此,与Qt Quick相比,Qt Widgets可以被认为是低级的。但这意味着从长远来看,Qt Widgets项目将运行更快,性能更好。低级别可能也有好处,因为Qt Widgets更暴露于本地API(QtCore模块等)。尽管如此,它通常用于桌面开发。
Qt Quick适用于桌面和移动开发。它具有现成的popups、animations、选项卡和布局、flickables、drawers以及通常在移动开发中普遍存在的控件。sql
, network
, gui
),以及编程设计(例如用于显示数据的model/view programming)。while
-loop,但Qt不是这种情况。它们使用信号和槽。TreeView
,但没有TreeModel
,应该从C ++中注册到QML中。通常有一个关注点分离的说法,其中Qt建议将程序分为UI和逻辑分别放入QML和C ++中。注意: Qt Widgets已被QML Widgets取代; 本答案回答的是关于旧版Qt Widgets的历史问题。
Qt Quick是一种声明式、智能手机风格的用户界面,支持许多常见于智能手机应用程序的酷炫动画过渡效果。Quick也是快速开发原型的不错选择。而Qt Widget是传统的桌面定向UI模型。
目前(Qt5之前),Qt Quick对桌面系统功能的支持尚不足(但正在改进)。在Quick中,菜单、工具栏、对话框和其他标准桌面行为的支持不如Widget,而Widget非常擅长支持这些元素。
您想让您的应用程序在桌面和平板电脑平台上看起来和感觉像本地应用程序,还是在您自己的自定义UI部件周围构建一个简单的应用程序?正如Mat所说,如果Qt Quick支持您想要的功能,那可能是您最快的方法。如果您想构建功能完整的桌面版本,则Qt Widget可能是最好的选择。
首先,我认为你应该从Widget开始。Widget UI有助于更容易地学习qt,如果您之前的经验是关于前端事物,您将更容易地学习Quick。