QML和C++之间的适当配置
Suitable disposition between QML and C++
我正在使用QML/C++用Qt 5和MVC构建一个自定义UI,我想知道如何根据在C++中放什么和在QML中放什么来构建代码。纯可视化的部分(视图)显然会放在QML中,数据(模型)放在C++中,但那些不太清楚的部分呢?我应该倾向于将东西放在C++中,并尝试在一定程度上减少QML代码,还是最好倾向于另一个方向,即增加QML代码并减少C++部分?我与Qt/QML的合作还不够,无法知道什么是最好的方法。
这两个部分都是完全可行的imho,但如果我之后需要更改这一点,那将需要付出很多努力,因此我希望在开始创建大量代码之前,至少在一定程度上做好这一点。
在设计QtQuick界面时,您在这方面有什么经验?您设计的组件主要是在C++中,顶部有一个瘦QML接口,还是相反?每种解决方案的优缺点是什么?在QtQuick中设计UI时,构建代码的首选方式是什么?
这是我的两美分。这适用于Qt版本5.1(ish)
QML是为实现UI而设计的。所以我设计了那些在QML中进行可视化实现的部分。有些UI元素在Javascript中做不好,所以我在C++中做"助手"或视图。
我正在使用模型/视图进行数据显示。所有的模型都是用C++实现的(我在上一个应用程序中使用了sqlite数据库)。
QML仍在进行中,所以如果你偏离标准电话接口太远,就没有太多实现。您期望的桌面用户界面行为的标准根本不存在。
祝你好运!
理想情况下,用c++制作模型和控制器。对视图使用QML。在QML视图中,您可以很容易地合并用C++编写的组件(有一个插件系统和一个API,用于可视化和非可视化C++组件,以便在QML中很好地集成)
在Qt 5.1+中,QML的性能在UI渲染方面有了很大的改进,但您应该限制在javascript中(在QML内部)执行的逻辑量。
QML擅长的是声明UI的外观以及它应该如何连接到控制器的信号和插槽,如果你最终在QML文件中写入了复杂的逻辑,那么你可能做错了什么。
附言:有几个大型开源项目使用QML,你可以在github上找到它们。你可以用它们作为风格指南。
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 无法找到/读取配置文件.conf-FileIOException
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 检测到 Conan 配置文件设置与 CMake 之间的编译器版本不匹配
- C++配置之间切换的最佳方式
- 不同语言之间的配置文件
- 调试和发布配置 (c++) 中内置的共享库之间的用法有何区别?
- -fprofile使用和-futo配置文件之间的区别是什么
- QML和C++之间的适当配置
- Visual studio 2010-在不同的生成配置之间保留项目属性
- 在OS X(不同版本/配置文件)上的OpenGL上下文之间共享数据
- 在不同配置之间共享.obj文件