Qt QML应用层框架

Qt/QML 的应用层框架,比 WPF 更灵活、比 MFC 更现代,尤其适合:

  • 工业上位机
  • 嵌入式 GUI
  • 车机 HMI
  • 仪器仪表
  • 跨平台桌面软件
  • 触摸屏系统

Qt 官方本身提供的是:

  • Qt Widgets
  • Qt Quick/QML

但真正的大型项目,通常会在 QML 之上再构建:

text 复制代码
MVVM
模块化
状态机
插件化
消息总线
导航
DI
业务框架

一、Qt/QML 最核心的官方框架


1. Qt Quick(QML)

官方现代 UI 框架。

核心:

text 复制代码
QML + C++

结构:

text 复制代码
UI(QML)
   ↓
ViewModel/C++
   ↓
业务逻辑

特点

声明式 UI

类似:

  • WPF XAML
  • Flutter
  • React

例如:

qml 复制代码
Button {
    text: "OK"
}

GPU 加速

基于:

  • Scene Graph
  • OpenGL/Vulkan/Metal/D3D

非常适合:

  • 动画
  • 实时刷新
  • 仪表盘
  • 曲线

天然跨平台

支持:

  • Windows
  • Linux
  • ARM
  • MCU
  • Android
  • Embedded Linux

二、Qt 官方应用层框架


1. Qt Design Studio 架构

官方推荐:

text 复制代码
UI设计
    ↓
QML界面
    ↓
C++ Backend

常见模式:

text 复制代码
QML
 ↕
QObject
 ↕
业务逻辑

通过:

  • Q_PROPERTY
  • signals/slots
  • QQmlContext

绑定。


三、Qt/QML 常见架构模式

Qt 没有像 Prism 那样"绝对统治"的框架。

更多是:

各公司自己封装。

但主流架构模式比较统一。


四、Qt MVVM 框架


1. QtMvvm

社区较有名。

项目:

QtMvvm GitHub

特点:

  • 类似 WPF MVVM
  • 导航
  • ViewModel
  • Settings
  • DI

适合:

  • 中大型项目

2. qtmvvm(轻量实现)

很多公司自己实现:

text 复制代码
QObject ViewModel
 + Q_PROPERTY
 + signal/slot

例如:

cpp 复制代码
class MainViewModel : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ name NOTIFY nameChanged)
};

QML:

qml 复制代码
Text {
    text: vm.name
}

这是目前最主流方式。


五、Felgo(非常成熟)

商业级 Qt/QML 应用框架。

项目:

Felgo


功能

提供:

  • 页面导航
  • 状态管理
  • 热更新
  • 插件
  • 后端通信
  • 移动端支持

类似:

text 复制代码
Qt + Flutter风格框架

适合

  • 商业产品
  • 跨平台 App
  • 企业应用

六、Kirigami(KDE 官方)

KDE 的 QML 应用框架。

项目:

Kirigami


特点

适配:

  • Desktop
  • Tablet
  • Mobile

提供:

  • 导航
  • 页面栈
  • 响应式布局

类似:

text 复制代码
Material + Fluent 风格

七、FluentUI for Qt/QML

现在非常热门。

项目:

FluentUI GitHub


功能

微软 Fluent 风格:

  • NavigationView
  • Acrylic
  • Mica
  • Win11 风格

大量国产 Qt 项目在用。


八、Qt Advanced Docking System(ADS)

工业软件很常见。

项目:

Qt Advanced Docking System


功能

类似:

  • Visual Studio
  • Qt Creator

支持:

  • Dock
  • 浮动窗口
  • 自动隐藏

工业软件常见组合:

text 复制代码
Qt/QML
+ ADS
+ 插件系统

九、工业软件中最常见的 Qt/QML 自研框架

实际上:

真正的大型 Qt 项目,很多都是"自研框架"。

结构通常:

text 复制代码
Core
 ├── App
 ├── UI
 ├── Device
 ├── Comm
 ├── Plugin
 ├── Script
 ├── Log
 ├── Database
 └── Algorithm

十、Qt/QML 最常见架构(工业界)


1. MVVM(最主流)

Qt/QML 非常适合 MVVM。

结构:

text 复制代码
QML(View)
   ↓
ViewModel(QObject)
   ↓
Model

2. 状态机架构

Qt 官方:

  • QStateMachine

工业控制大量使用:

text 复制代码
Idle
 → Connect
 → Run
 → Alarm

3. 事件总线

常见:

text 复制代码
signal/slot

或:

text 复制代码
EventBus

4. 插件化

Qt 插件机制很成熟:

cpp 复制代码
QPluginLoader

工业平台大量使用。


十一、车机/HMI 常见框架

车机领域:

text 复制代码
Qt/QML
 + 状态机
 + CAN总线
 + 动画引擎

非常常见。

很多:

  • 仪表盘
  • 中控
  • HUD

都是 QML。


十二、嵌入式 Qt/QML 架构

常见:

text 复制代码
QML UI
   ↓
C++ Service
   ↓
硬件抽象层

设备:

  • ARM Linux
  • i.MX6
  • RK3568
  • STM32MP1

十三、Qt/QML 与 Widgets 的关系

现在大型 Qt 项目有三种:


1. 纯 Widgets

传统工业软件。

优点:

  • 稳定
  • 资源低

缺点:

  • UI老

2. Widgets + QML 混合(最常见)

结构:

text 复制代码
Widgets主框架
   ↓
QML子页面

工业界非常常见。


3. 纯 QML

现代项目。

优点:

  • 动画强
  • UI现代

缺点:

  • 超大型复杂界面有时不如 Widgets 好维护

十四、现在最主流 Qt/QML 技术栈


中小项目

推荐:

text 复制代码
Qt Quick
+ QML
+ QObject MVVM

大型工业项目

推荐:

text 复制代码
Qt Widgets
+ QML
+ ADS
+ Plugin
+ MVVM

现代 Win11 风格项目

推荐:

text 复制代码
Qt/QML
+ FluentUI

十五、Qt/QML vs WPF vs Flutter

特性 Qt/QML WPF Flutter
跨平台
GPU UI
工业软件 非常强 一般
嵌入式 非常强 一般
Win原生 一般 一般
MVVM 非常强 一般
动画 非常强

十六、目前业内最常见 Qt 架构组合

场景 组合
工业软件 Widgets + QML + ADS
车机HMI 纯QML + 状态机
嵌入式 QML + C++
平台软件 Qt + Plugin
Win11风格 Qt + FluentUI
相关推荐
xiangyun6134 分钟前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun611 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
白远山2 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
DevRay3 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom3 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉3 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语3 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
Brilliantwxx4 小时前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
清水白石0084 小时前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
kolyle4 小时前
万级 QPS 下的 Token 分发系统架构:从 0 到 1 跑通 AI 时代的“水电煤“
开发语言·人工智能·系统架构·token·qps·极智词元·大模型私有化部署