Files
scuc-qt-course/docs/teaching/examples/CMakeLists.txt
T
张宗平 6d1895d696 教学示例补 5 个:3 个坑点复现 + QTableWidget + Day5 学员管理器参考实现
- pitfall_stack_widget / pitfall_lambda_capture / pitfall_double_connect:
  默认跑正确写法(离屏验证退出码 0),--crash / --dangle 开关课堂现场触发
  真实崩溃/悬空访问
- table_widget:QTableWidget 单元格事件最小示例(新安排 Day4「表格事件」)
- student_manager:Day5 综合案例参考实现,离屏自测覆盖 JSON round-trip
  与 QThread 后台导入闭环
- 均接入 examples/CMakeLists.txt 的 add_teaching_example,手工维护区不影响生成器
2026-07-05 12:49:20 +08:00

43 lines
2.0 KiB
CMake
Raw 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.
# 手工维护 —— 不是 tools/gen_part3.py 的生成产物,重新生成 p01/p03 不会影响这里。
#
# 教学补充示例:方案书「C++方向」课程要求、但仓库 p03/(wiki 抓取内容)未覆盖
# 的技术点,每个子目录一个最小可运行 Qt 程序 + 配套 README.md 教学文档。
# 不计入 README.md/CLAUDE.md 里「144+29=173 个目标」的生成器目标计数。
function(add_teaching_example name dir)
add_executable(${name} ${dir}/${name}.cpp)
set_target_properties(${name} PROPERTIES
CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF AUTOMOC ON)
target_link_libraries(${name} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
target_compile_options(${name} PRIVATE -Wall -Wextra)
endfunction()
add_teaching_example(qt_qss_styling qss_styling)
add_teaching_example(qt_model_view_basics model_view)
add_teaching_example(qt_json_parse_write json_io)
add_teaching_example(qt_thread_worker qthread_worker)
add_teaching_example(qt_property_animation property_animation)
add_teaching_example(qt_state_machine state_machine)
# 坑点最小复现示例(OUTLINE_4DAY.md §9.2):默认跑「正确写法」离屏可验证退出码 0,
# 错误写法一律用命令行开关现场触发(--crash / --dangle),不影响自动化验证。
add_teaching_example(qt_pitfall_stack_widget pitfall_stack_widget)
add_teaching_example(qt_pitfall_lambda_capture pitfall_lambda_capture)
add_teaching_example(qt_pitfall_double_connect pitfall_double_connect)
add_teaching_example(qt_table_widget_basics table_widget)
# Day5 综合案例参考实现(OUTLINE_4DAY.md §3 / §9.3
add_teaching_example(qt_student_manager student_manager)
add_custom_target(all_teaching_examples DEPENDS
qt_qss_styling
qt_model_view_basics
qt_json_parse_write
qt_thread_worker
qt_property_animation
qt_state_machine
qt_pitfall_stack_widget
qt_pitfall_lambda_capture
qt_pitfall_double_connect
qt_table_widget_basics
qt_student_manager)