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
相关推荐
Ada's4 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885724 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪5 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
倔强的石头1066 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
传人once6 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
NeilYuen6 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
蜗牛互联网7 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
weixin_307779137 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
ttwuai8 小时前
Go后台管理系统开源项目:4个官方仓库怎么追溯和核验
开发语言·golang·开源
谢亮_vipxieliang8 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang