强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

Qt 与 GTK 图形框架教程

Qt 与 GTK 图形框架教程 / Qt & GTK Graphics Framework Tutorial

一套由浅入深的 Qt 与 GTK 完整教程,涵盖 C++ 与 Python 双语言实现。 A comprehensive Qt & GTK tutorial with C++ and Python examples.


目录 / Table of Contents

# 章节 / Chapter 关键词 / Keywords
1 Qt 与 GTK 概述 / Introduction 历史, 许可证, 选型
2 Qt 基础 / Qt Basics 信号与槽, 元对象, 属性
3 Qt Widgets 控件 / Qt Widgets 布局, 对话框, 菜单, 样式
4 QML 与 Qt Quick 声明式UI, 动画, 移动端
5 Qt 网络编程 / Qt Network TCP, UDP, HTTP, WebSocket
6 Qt 数据库 / Qt Database SQL, 模型视图, 委托
7 GTK 基础 / GTK Basics GObject, 信号, GType
8 GTK4 控件 / GTK4 Widgets 布局, 列表, 树, CSS
9 libadwaita 现代化 / libadwaita 自适应, 暗色模式, HIG
10 Python 绑定 / Python Bindings PyQt, PySide, gi
11 跨平台开发 / Cross-Platform 部署, 打包, 安装器
12 主题与样式 / Theming QSS, GTK CSS, 暗色模式
13 数据库集成 / Database Integration ORM, CRUD, 表单验证
14 UI 测试 / Testing QTest, pytest-gtk, 自动化
15 Docker 容器化 / Docker X11, Wayland, 容器化开发
16 最佳实践 / Best Practices MVC, MVVM, 性能, 国际化

适用读者 / Target Audience

读者类型 / Reader Type 建议 / Suggestion
🟢 初学者 / Beginner 从第 1 章开始,按顺序阅读 / Start from Chapter 1
🟡 有经验者 / Experienced 直接跳到感兴趣的章节 / Jump to needed chapter
🔴 架构师 / Architect 重点阅读第 11、16 章 / Focus on Ch.11 & Ch.16
🐍 Python 开发者 / Python Dev 重点阅读第 10 章 / Focus on Ch.10

每章结构 / Chapter Structure

每章均包含以下部分:

  • 概述 — 核心概念介绍 / Overview — core concepts
  • 代码示例 — C++ 与 Python 可运行代码 / Code — runnable C++ & Python
  • 表格 — API 速查 / Tables — API reference
  • 业务场景 — 实际应用 / Business scenarios
  • 注意事项 — 常见陷阱 / Pitfalls & notes
  • 扩展阅读 — 官方文档链接 / Further reading

框架对比速览 / Quick Comparison

特性 / Feature Qt 6 GTK 4
语言 / Language C++ (QML/JS) C (多语言绑定)
许可证 / License LGPLv3 / GPLv3 / 商业 LGPLv2.1+
控件工具包 / Widget Kit Qt Widgets + Qt Quick GTK Widgets
声明式 UI / Declarative QML 无(GTK4 使用 XML/Blueprint)
移动端 / Mobile ✅ Android/iOS ❌ 仅桌面
主流发行版默认 / Default DE KDE Plasma GNOME
开发 IDE / IDE Qt Creator GNOME Builder
构建系统 / Build System CMake / qmake Meson
Python 绑定 / Python Bind PyQt6 / PySide6 PyGObject (gi)

环境准备 / Prerequisites

安装 Qt 6 / Install Qt 6

# Ubuntu / Debian
sudo apt install qt6-base-dev qt6-declarative-dev qtcreator

# Fedora
sudo dnf install qt6-qtbase-devel qt6-qtdeclarative-devel qt-creator

# Arch Linux
sudo pacman -S qt6-base qt6-declarative qt6-tools qtcreator

# macOS (Homebrew)
brew install qt@6

安装 GTK 4 / Install GTK 4

# Ubuntu / Debian
sudo apt install libgtk-4-dev libadwaita-1-dev

# Fedora
sudo dnf install gtk4-devel libadwaita-devel

# Arch Linux
sudo pacman -S gtk4 libadwaita

# macOS (Homebrew)
brew install gtk4 libadwaita

安装 Python 绑定 / Install Python Bindings

# PyQt6
pip install PyQt6

# PySide6
pip install PySide6

# GTK Python (PyGObject)
pip install PyGObject
# Ubuntu 额外依赖
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1

学习路线图 / Learning Roadmap

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  01 概述     │───▶│  02 Qt 基础  │───▶│  03 Widgets  │
│  Introduction│    │  Qt Basics   │    │  Qt Widgets  │
└──────────────┘    └──────────────┘    └──────┬───────┘
                                               │
                    ┌──────────────────────────┼──────────────┐
                    ▼                          ▼              ▼
              ┌──────────┐             ┌──────────────┐ ┌──────────────┐
              │ 04 QML   │             │ 07 GTK 基础  │ │ 10 Python    │
              │ Qt Quick │             │ GTK Basics   │ │ Bindings     │
              └──────────┘             └──────┬───────┘ └──────────────┘
                    │                          │
                    ▼                          ▼
              ┌──────────┐             ┌──────────────┐
              │ 05-06    │             │ 08-09 GTK    │
              │ Network  │             │ Widgets+Adw  │
              │ Database │             └──────────────┘
              └──────────┘
                    │
        ┌───────────┼───────────────────┐
        ▼           ▼                   ▼
  ┌──────────┐ ┌──────────┐     ┌──────────────┐
  │ 11 跨平台│ │ 12 主题  │     │ 13 数据库集成│
  └──────────┘ └──────────┘     └──────────────┘
        │           │                   │
        ▼           ▼                   ▼
  ┌──────────┐ ┌──────────┐     ┌──────────────┐
  │ 14 测试  │ │ 15 Docker│     │ 16 最佳实践  │
  └──────────┘ └──────────┘     └──────────────┘

提示 / Tip: 建议配合实际代码练习,每章代码均可独立编译运行。 Suggested: practice with real code. Each chapter’s code is independently compilable.