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

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
1Qt 与 GTK 概述 / Introduction历史, 许可证, 选型
2Qt 基础 / Qt Basics信号与槽, 元对象, 属性
3Qt Widgets 控件 / Qt Widgets布局, 对话框, 菜单, 样式
4QML 与 Qt Quick声明式UI, 动画, 移动端
5Qt 网络编程 / Qt NetworkTCP, UDP, HTTP, WebSocket
6Qt 数据库 / Qt DatabaseSQL, 模型视图, 委托
7GTK 基础 / GTK BasicsGObject, 信号, GType
8GTK4 控件 / GTK4 Widgets布局, 列表, 树, CSS
9libadwaita 现代化 / libadwaita自适应, 暗色模式, HIG
10Python 绑定 / Python BindingsPyQt, PySide, gi
11跨平台开发 / Cross-Platform部署, 打包, 安装器
12主题与样式 / ThemingQSS, GTK CSS, 暗色模式
13数据库集成 / Database IntegrationORM, CRUD, 表单验证
14UI 测试 / TestingQTest, pytest-gtk, 自动化
15Docker 容器化 / DockerX11, Wayland, 容器化开发
16最佳实践 / Best PracticesMVC, 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

特性 / FeatureQt 6GTK 4
语言 / LanguageC++ (QML/JS)C (多语言绑定)
许可证 / LicenseLGPLv3 / GPLv3 / 商业LGPLv2.1+
控件工具包 / Widget KitQt Widgets + Qt QuickGTK Widgets
声明式 UI / DeclarativeQML无(GTK4 使用 XML/Blueprint)
移动端 / Mobile✅ Android/iOS❌ 仅桌面
主流发行版默认 / Default DEKDE PlasmaGNOME
开发 IDE / IDEQt CreatorGNOME Builder
构建系统 / Build SystemCMake / qmakeMeson
Python 绑定 / Python BindPyQt6 / PySide6PyGObject (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.