快速开始
简介
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 / Style | QML(声明式组合) |
| 基础行为 | 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) |
