QtShadcn
快速开始

简介

QtShadcn 项目定位与设计哲学。

QtShadcn — A modern, composable UI component library for Qt 6 / QML, inspired by shadcn/ui.

对齐 shadcn/ui 的设计哲学:Design Token → Component → Composition → Theme。组件可组合、可复制、无黑盒依赖;开发者在组件上组合出页面,而不是在画布上摆放控件。

✨ 特性

  • Design Token 驱动 — 语义化颜色 / 圆角 / 间距 token,theme.mode = "dark" 全局随动
  • QML 管 UI,C++ 管能力 — Theme 引擎、Icon 注册、Model 等能力层落在 C++,不退化成一个「QML 样式库」
  • 复用 Qt Quick Controls — 键盘导航、Focus、无障碍开箱即得,只做视觉与组件 API
  • 可组合组件 — Card = CardHeader / CardContent / CardFooter,对齐 shadcn/ui 组合方式

🚫 明确不做

  • ❌ QWidget + QPainter 手绘控件(传统桌面控件库路线)
  • ❌ 重新发明 Qt Quick Controls 的基础行为(键盘导航 / Focus / Accessibility / 输入事件 / Tab 顺序)

🏗️ 核心原则

QML 负责 UI,C++ 负责能力。 依赖方向单向:QML 组件 → C++ 能力层(Theme 引擎、Icon 系统、Model、原生能力)。C++ 不反向依赖具体 QML 组件。

反模式警告:全部纯 QML 会让项目退化成「一个 QML 样式库」。

📦 技术栈

层选型
UI / StyleQML(声明式组合)
基础行为Qt Quick Controls 2(Basic style,token 自绘前提)
能力层C++(Qt 6)
构建CMake + qt_add_qml_module(import QtShadcn)
环境Qt 6.5+ / CMake 3.24+(本机 Qt 6.11.1 @ ~/Qt/6.11.1/macos, arm64)
Copyright © 2026