Skip to content

简介

Quik 是一个基于 Qt 的响应式 XML UI 框架。用 XML 声明界面,用 C++ 操作数据,UI 自动同步。

解决的痛点

传统 QWidget 开发存在以下问题:

  • UI 代码冗长 - 创建控件、设置属性、添加布局、连接信号槽,一个简单面板动辄上百行
  • 数据同步繁琐 - 手动 setText()setValue(),忘记同步就出 bug
  • 迭代效率低 - 改个布局要重新编译,调试 UI 耗时耗力
  • 代码难以维护 - UI 逻辑和业务逻辑混杂,新人难以接手

Quik 的解决方案:

  • XML 声明 UI - 结构清晰,所见即所得
  • 响应式绑定 - 赋值即更新,告别手动同步
  • 热更新 - 改 XML 立即生效,开发效率翻倍
  • 关注点分离 - UI 在 XML,逻辑在 C++,各司其职

AI 开发友好

Quik 对 AI 辅助开发非常友好:

  • XML 是标记语言 - LLM 天然擅长生成和理解结构化标记
  • C++ 用法极简 - vm.var<T>() 一行搞定,无需复杂的信号槽模板
  • 模式固定 - XML + C++ 的组合模式清晰,AI 容易学习和复用

降低开发门槛

Quik 可以有效兜底团队中不同水平的开发者:

  • 新手友好 - 不需要深入理解 Qt 信号槽机制,照着模板写 XML 就能出活
  • 减少低级错误 - 响应式绑定自动同步,避免忘记更新 UI 的常见 bug
  • 代码风格统一 - XML 结构约束了 UI 写法,团队代码一致性更好
  • Review 更轻松 - UI 变更一目了然,不用在 C++ 代码里翻找布局逻辑

核心能力

能力说明
声明式UIXML定义界面结构,自动生成Qt Widgets
响应式绑定vm.var 像普通变量,赋值即更新UI
条件渲染visible="$enable==1" 表达式控制显隐
循环渲染q-for 数据驱动列表,增删自动同步
热更新开发时改XML即刷新,无需重编译

对比

传统QtQMLQuik
UI定义C++代码QML语言XML
数据绑定手动信号槽自动自动
运行时QML引擎
类型安全

适用场景

  • 工具软件的参数面板、设置对话框
  • CAD/CAE 软件的属性编辑器
  • 需要快速迭代的交互界面

下一步

基于 MIT 协议开源