Files
张宗平 13b3ebbe14 课程代码仓库初始化:Part1 (144) + Part3 (29) 全量生成与验证
把川大 wiki「02.Qt方向」课程代码整理为 CMake 管理的可编译运行项目。

Part1 C/C++ 强化 (p01/, 144 目标, host gcc/g++ 构建, 全绿):
- 修复全部编译失败:补 <cstring>/<fstream>/<iomanip>/<vector> 等缺失头
  (common_fix + infer_stl_includes 自动检测注入)、修正 pause() 壳注入
  (改检测已转换后的 pause 调用)、namespace 提升出函数体、const 成员函数
  正确性、dedupe 不再破坏函数重载集、K&R 隐式 int / 动态异常规范等
  C++17 移除特性的可编译等价改写。
- 目录采用深缩写 p01/ch04/s03/ (原 part1_cpp/ch04_class_object/03_ctor_dtor)。

Part3 Qt 桌面 (p03/, 29 目标, 隔离 Qt 5.14.2 构建, 全绿):
- gen_part3.py: Qt 外壳模板 (main+QApplication+show, QTimer 自动退出便于
  offscreen 验证)、AUTOMOC + .moc include、rewrite_* 处理散文混入/重载/
  资源依赖、生成占位 png/gif + .qrc + rundata 样例数据。
- 修正 QLable 笔误、全角分号、.→->、Windows 路径、QApplication 阻塞事件
  循环改为 QCoreApplication 等。

任务1 概念/版本验证:
- tools/std_probe.py: 跨 -std= 编译探针 (--pedantic-errors 让已废除特性硬失败)。
- tools/demo_versions/: K&R 隐式 int、三目左值、void* 转换、enum 赋整、
  const 经指针、动态异常规范 共 6 个跨版本演示。
- docs/VERSION_NOTES.md: 每条「原文说法→C17/C++17 是否成立→何版本成立→已验证」。

文档: 顶层 README、docs/SOURCE_PAGES.md (页面→目录映射)、
docs/ERRATA.md (Part1 修正)、docs/ERRATA_part3.md (Part3 修正)。
另修复 tools/run.sh / run_qt.sh 的 ${1:?...} 引号语法 bug。

隔离 Qt 验证: ldd 0 系统 Qt 引用; 173/173 目标全绿; p03 offscreen 运行通过。
2026-06-30 14:16:55 +08:00

58 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SOURCE_PAGES — wiki 页面与本仓库目录的映射
本文件记录川大 wiki「02. Qt 方向」每个页面(pageId)与本仓库源码目录的对应关系。
所有源码由 `tools/gen_part1.py` / `tools/gen_part3.py` 从抓取的 wiki 代码块生成
(原始数据见 `tools/wiki_data/`,生成器只读不改原始数据)。
目录采用「深缩写」:part 缩写 `pNN`(顶层不编号)/ 章缩写 `chNN` / 节缩写 `sNN`
## Part 1 — C/C++ 强化(`p01/`host gcc/g++ 构建,144 个目标)
| pageId | 目录 | wiki 标题 | 代码块数 |
|---|---|---|---|
| 58954438 | `p01/ch02` | 02.C++初识 | 1 |
| 58954439 | `p01/ch03` | 03.C++对C的扩展 | 47 |
| 58954448 | `p01/ch04/s01` | 01.类和对象的基本概念 | 4 |
| 58954449 | `p01/ch04/s02` | 02.面向对象程序设计案例 | 2 |
| 58954451 | `p01/ch04/s03` | 03.对象的构造和析构 | 17 |
| 58954456 | `p01/ch04/s04` | 04.C++面向对象模型初探 | 4 |
| 58954457 | `p01/ch04/s05` | 05.友元 | 1 |
| 58954458 | `p01/ch04/s06` | 06.运算符重载 | 6 |
| 58954461 | `p01/ch04/s07` | 07.继承和派生 | 13 |
| 58954469 | `p01/ch04/s08` | 08.多态 | 7 |
| 58954472 | `p01/ch05` | 05.C++模板 | 12 |
| 58954473 | `p01/ch06` | 06.C++类型转换 | 3 |
| 58954474 | `p01/ch07` | 07.C++异常 | 9 |
| 58954476 | `p01/ch08` | 08.C++输入输出流 | 5 |
| 58954487 | `p01/ch09/s02` | 02.STL三大组件 | 1 |
| 58954488 | `p01/ch09/s03` | 03.常用容器 | 7 |
| 58954498 | `p01/ch09/s04` | 04.常用算法 | 6 |
> 第 4 章「类和对象」分 8 节(s01–s08);第 9 章「STL」分 3 节(s02s04)。
## Part 3 — Qt 桌面应用开发(`p03/`,需隔离 Qt 5.14.229 个目标)
| pageId | 目录 | wiki 标题 | 代码块数 |
|---|---|---|---|
| 58954515 | `p03/ch02` | 2 创建Qt项目 | 1 |
| 58954525 | `p03/ch03` | 3 第一个Qt小程序 | 3 |
| 58954527 | `p03/ch04` | 4 信号和槽机制 | 7 |
| 58954529 | `p03/ch05` | 5 QMainWindow | 7 |
| 58954535 | `p03/ch06` | 6 对话框QDialog | 16 |
| 58954540 | `p03/ch08` | 8 常用控件 | 16 |
| 58954546 | `p03/ch09` | 9 Qt消息机制和事件 | 11 |
| 58954548 | `p03/ch10` | 10 绘图和绘图设备 | 5 |
| 58954552 | `p03/ch11` | 11 文件系统 | 7 |
> Part3 中纯签名/伪代码/参考片段(约 40 块)未单独建目标,折进各章 `README.md`
> 作文档(见 `gen_part3.py` 的 `BLOCK_TREATMENT` 分类的 `snippet`)。
## 抓取数据说明
- `tools/wiki_data/extracted_code.json`:所有页面的代码块(按 pageId → [blocks])。
- `tools/wiki_data/bodies/<pageId>.json`:每页正文 HTML(用于标题层级解析)。
- `tools/wiki_data/all_page_ids.json`:页面元信息(id、标题)。
- `tools/wiki_data/qt_full_tree.json`wiki 目录树结构。
> 原始抓取数据保持原貌,**不被生成器修改**(红线,见 `HANDOFF.md` §9)。