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
相关推荐
牛油果子哥q1 小时前
【C++前置声明与头文件】C++前置声明与头文件深度精讲:重复包含、循环依赖、重复定义报错、工程编译架构与实战解决方案
开发语言·c++
少司府1 小时前
C++进阶:map和set的使用
开发语言·数据结构·c++·容器·stl·set·map
江湖中的阿龙1 小时前
23种设计模式
java·开发语言·设计模式
xiaoshuaishuai81 小时前
C# Avaloniaui ListBox样式及用法
开发语言·c#
天才程序YUAN1 小时前
Windows 11 C 盘扩容完整教程:恢复分区拦路、页面文件锁盘、WinRE 重建全记录
c语言·开发语言·windows
川冰ICE1 小时前
JavaScript进阶③|Map_Set_WeakMap_WeakSet,新型数据结构
开发语言·javascript·数据结构
我是一颗柠檬1 小时前
C语言最全面复习:从入门到精通(2026年)
c语言·开发语言
ch.ju1 小时前
Java Programming Chapter 4——The set method assigns a value to the property.
java·开发语言
古城小栈1 小时前
Rustix库:Rust 系统编程 的 基石
开发语言·后端·rust