diff --git a/docs/teaching/examples/property_animation/source.gif b/docs/teaching/examples/property_animation/source.gif new file mode 100644 index 0000000..304234a Binary files /dev/null and b/docs/teaching/examples/property_animation/source.gif differ diff --git a/docs/teaching/ppt/day1.pptx b/docs/teaching/ppt/day1.pptx index 6dbbea4..97e4190 100644 Binary files a/docs/teaching/ppt/day1.pptx and b/docs/teaching/ppt/day1.pptx differ diff --git a/docs/teaching/slides/day2.html b/docs/teaching/slides/day2.html index 99ed860..85bed9d 100644 --- a/docs/teaching/slides/day2.html +++ b/docs/teaching/slides/day2.html @@ -267,11 +267,49 @@ grid->addWidget(btn9, 0, 2); grid->addWidget(btnDiv, 0, 3); // 行、列坐标
button_creation)+ 点击信号槽(刚学的三种写法)
- + QGridLayout 脚手架排键盘 + QLabel/QLineEdit 显示结果。button_creation)+ 点击信号槽(刚学的两种写法:
+ lambda+context 批量绑定数字/运算符键,成员函数指针绑定等号/清空/退格)
+ + QGridLayout 脚手架排键盘 + QLineEdit 显示结果。教师完整参考实现(现场先跑成品,再拆代码):
+ examples/calculator/qt_calculator.cpp
+ (README,
+ QT_QPA_PLATFORM=offscreen tools/run_qt.sh qt_calculator 自测 5 组用例)。
+ 课上不要直接展示源码给学生抄——讲思路,学生自己实现(任务卡 2)。
.ui 表单(纯 XML),
+ uic 编译期翻译成 ui_xxx.h,setupUi(this)
+ 一次建好控件树——业务逻辑(onDigit/onOperator……)
+ 与代码布局版一字不差,换的只是"界面从哪来"。setupUi() 内部会 connectSlotsByName(this):类里若有
+ on_<objectName>_<signal>() 槽会被自动连接——这是
+ 信号槽之外、Designer 工作流特有的第三种"连接方式"。objectName 从 btnClear 改成
+ btnReset:on_btnClear_clicked() 不报编译错误、不报运行时
+ 错误,只是从此再也不会被调用——静默失败坑点家族的第三个成员(前两个:旧
+ SIGNAL()/SLOT() 字符串语法、重复 connect)。
+ 本参考实现故意改用显式 connect() 规避这个坑。对照实现:examples/calculator_designer/qt_calculator_designer.cpp + + calculator_designer.ui + (README)—— + 快速原型/界面调整用 Designer 更直观;控件数量随数据动态变化(如 Day5 表格行) + 必须手写代码搭建,两条路线按场景选,不是谁取代谁。