Qt QML应用框架

本文探讨了QtQML在跨平台和嵌入式开发中的应用,分析了QML开发者较少的原因,指出QML引入前后端概念。文章介绍了多层架构在Qt开发中的应用,并提出QtAPP框架,强调了Flux架构在业务逻辑分离中的作用,以实现更好的维护性和扩展性。同时,讨论了Qt的跨平台特性和文件加载策略。最后,作者分享了自己的架构思考,包括UI与业务逻辑的分离以及如何避免过度依赖C++模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 介绍

1.1 QML开发人员少分析

Qt开发更多的是跨平台,嵌入式,整体来说,这方向人不多,在此基础上,用QML的着实少。Qt是一套框架,Qt开发本质也是C++开发。搞QML开发少,博主觉得一方面是C++开发看不上QML开发,一方面是怕搞QML开发弱化自己的C++能力。就如博主目前手头开发的项目,总代码量在5万行多,自己独立写的,C++部分比QML代码多,其中C++部分不与HMI直接交互的都是Unix C++,与HMI交互的才用Qt的C++类,界面使用QML。一方面是采用Flux架构把核心业务逻辑部分能分离出来,不依赖Qt,后续可单独维护。另一方面怕自己的Unix C++开发能力弱化。

1.2 QML带来前后端概念,与安卓web开发框架看齐

Qt开发初期,只有UI部分使用QWidget技术。该阶段,极少提出前后端、全栈概念。QML引入后,使得Qt开发有了前后端的概念。然后网上就有将Qt的C++逻辑开发称为后端开发,QML界面部分开发称为前端开发。
传统的前后端开发的框架,也就引入了Qt开发中。如Facebook的Flux架构、Twitter的Bootstrap框架。

  • Flux工作流程图
    在这里插入图片描述
  • Bootstrap框架图
    在这里插入图片描述

2 网上一些架构思路

2.1 多层架构

2.1.1 来源

A Multilayered Architecture for Qt Quick

2.1.2 多层架构的介绍

多层架构,各层职责明确,利于高内聚低耦合。
经典层如下:

  • 表示层:可见的用户界面
  • 服务层:进程间通信,前端/后端桥等。
  • 业务逻辑层:领域知识,业务规则等
  • 数据访问层:数据库,网络,文件等

2.1.3 多层架构调整为Qt APP架构

借鉴上述经典层,进行稍加修改。便可作为Qt app框架用:
在这里插入图片描述
该架构可轻松分离UI,便于UI切换(如切换为进程内Qt,远程进程Qt,远程HTML)。

2.2 Qt跨平台开发

程序原型简单,用户界面响应越快
文件挂载网关上,从网关上加载

2.3 withFlux

QML Application Architecture Guide with Flux

3 自己思考

归纳出相同重复的,然后设计。

参考

1、A Multilayered Architecture for Qt Quick
2、Qt qml的软件架构设计
3、Ben Lau–QML Application Architecture Guide with Flux
4、Ben Lau–Revised QML Application Architecture Guide with Flux
5、Ben Lau–Using Action-Dispatcher in QML
6、How to Avoid C++ Models in Qt and Why You Should Care
7、benlau/quickflux
8、Bootstrap框架图
9、架构进化论
10、架构设计的本质

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

worthsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值