6d1895d696
- 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,手工维护区不影响生成器
43 lines
2.0 KiB
CMake
43 lines
2.0 KiB
CMake
# 手工维护 —— 不是 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)
|