我正在使用QML / C ++构建一个使用Qt 5和MVC的自定义UI,我想知道如何构建有关C ++内容和QML内容的代码。纯粹的视觉部分(视图)显然会被放入QML和C ++中的数据(模型),但那些不清楚的部分呢?我是否应该倾向于将内容放入C ++并尝试在某种程度上减少QML代码,或者更倾向于向另一个方向倾斜,即增加QML代码并减少C ++部分?我没有足够的Qt / QML能够知道最好的方法是什么。
这两个部分都非常可行,但是如果我之后需要更改它,需要付出很多努力,因此我想在开始创建大量代码之前至少稍微做一点。
在设计QtQuick界面时,您有什么经验?您是否主要使用C ++设计组件,并在顶部或其他方面使用精简QML接口?每种解决方案的优缺点是什么?在QtQuick中设计UI时,构造代码的首选方法是什么?
答案 0 :(得分:1)
这是我的两分钱。这适用于Qt版本5.1(ish)
QML旨在实现UI。所以我设计了那些在QML中进行可视化实现的部分。一些UI元素在Javascript中可以很好地完成,所以我做了#34;帮助"或C ++中的观点。
我使用模型/视图进行数据显示。所有模型都是用C ++实现的(我的上一个应用程序使用了sqlite数据库)。
QML仍然是一项正在进行的工作,所以如果你偏离标准电话接口太远,那么实施起来并不多。您期望从桌面获取的UI行为标准根本不存在。
祝你好运!答案 1 :(得分:1)
理想情况下,用c ++制作模型和控制器。使用QML进行视图。 在QML视图中,您可以轻松地合并用C ++编写的组件(有一个插件系统和一个用于可视和非可视C ++组件的API,以便在QML中很好地集成)
在Qt 5.1+中,关于UI渲染的QML性能有了很大提高,但是你应该限制你在javascript(qml内部)中执行的逻辑量。
QML擅长的是声明UI的外观以及它应该如何连接到控制器的信号和插槽,如果最终在qml文件中编写错综复杂的逻辑,那么你可能做错了。
PS:有几个使用QML的大型开源项目,你可以在github上找到它们。您可以将它们用作样式指南。