Files
scuc-qt-course/docs/teaching/examples/calculator_mainwindow/main.cpp
T
张宗平 05a685c952 Day3 教学示例:增强版计算器接入 + QMainWindow/QSS 两版参考实现
- calculator_designer_ext(Day2 增强版:表达式求值 + 括号,递归下降解析器)接入 cmake
- calculator_mainwindow(Day3 上午):增强版计算器装进 QMainWindow,
  菜单/状态栏/历史停靠窗,纯代码 + 显式 connect,与 mainwindow_showcase 形成坑卡对照
- calculator_mainwindow_qss(Day3 下午):上午版 + QSS 双主题美化(按键分色/伪状态/深浅切换)
- 验证 mainwindow_showcase(QMainWindow 六大组件综合演示,.ui + .qrc)
- OUTLINE_4DAY.md / ASSIGNMENTS.md Day3 衔接增强版起点 + 参考实现指引
- 补提交 Day2 calculator/ 与 calculator_designer/ 参考实现(CMakeLists 已引用)
- 全量构建 28/28,4 目标离屏自测退出码 0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 22:59:05 +08:00

29 lines
1.1 KiB
C++
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.
// ============================================================================
// calculator_mainwindow —— Day3 上午版程序入口
// 对应教案 OUTLINE_4DAY.md Day3 上午「QMainWindow / 对话框 QDialog」。
//
// 把 Day2 增强版计算器(CalculatorDesignerQWidget)装进 QMainWindow
// - 菜单栏(文件/编辑/视图/帮助,纯代码 + 显式 connect
// - 历史停靠窗(QDockWidget + QListWidget,订阅 evaluated 信号)
// - 状态栏(就绪 / 结果临时提示)
// 离屏自测覆盖 Day2 全部 9 组计算用例 + Day3 新增(历史追加/双击回填/清空)。
// ============================================================================
#include <QApplication>
#include <QTimer>
#include "mainwindow.h"
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
MainWindow w;
w.show();
if (qgetenv("QT_QPA_PLATFORM") == "offscreen") {
QTimer::singleShot(0, &w, [&w] {
const bool ok = w.runSelfTest();
QCoreApplication::exit(ok ? 0 : 1);
});
}
return app.exec();
}