本项目已开源至GitHub
项目概述
基于Qt开发的多功能日历应用,集成以下核心功能:
- 📅 智能日历导航
- ⛅ 实时天气预报
- ✅ 可视化日程管理
- 🗃️ 本地数据存储
功能亮点
🖥️ 界面系统
1. 主界面

- 实时显示日期/时间/天气
- 月历视图支持点击交互
- 智能日程预览(最多显示4条)
2. 天气窗口

- 支持多种搜索方式:
- 中文城市名
- 汉语拼音
- 模糊匹配
- 显示7天预报数据
3. 日程管理

- 创建/编辑/删除日程
- 时间戳自动记录
- JSON格式本地存储
功能操作
修改与删除日程:在详细日程信息窗口,用户可直接修改日程内容并保存,或点击“删除”按钮删除该日程,修改或删除后日程信息将实时更新保存至json文件。
日历查看与导航
- 主窗口日历默认显示当前月份,用户可通过点击“今天”按钮快速返回当前日期,或点击年份输入框手动输入年份和月份跳转至指定日期。
- 点击日历右上角小三角,可查看全年日历,全年日历以月份为单位展示,方便用户快速定位和查看不同月份的日期分布。
天气预报查询
- 点击主窗口“天气”按钮,打开天气窗口,在输入框输入城市信息后点击查询,即可获取该城市详细天气预报,天气数据来源于和风天气api。
日程管理
- 添加日程:点击主窗口“日程”按钮,弹出日程创建窗口,输入日程标题和内容后保存,日程将与日期关联并存储。
- 查看日程:在主窗口点击日期,若该日期有日程安排,日程标题将显示在主窗口日程查看区域,点击“查看”按钮可查看全部日程,点击具体日程可在详细日程信息窗口查看详情。
数据存储与管理
- 程序通过合理的文件操作和数据处理逻辑,确保日程信息的准确存储和及时更新,即使程序关闭,日程数据也不会丢失,下次打开程序仍可查看和继续管理日程。
- 日程信息以json格式存储在本地文件中,每个日期对应一个json文件,文件名为日期(如“2024-05-19.json”),文件内容包含日程的标题、内容和时间等信息,方便数据的读取、更新和管理。
技术架构
开发环境
操作系统: Windows 11
开发工具: Qt Creator 12.0.2
编程语言: C++14
核心技术栈
| 模块 | 实现方案 |
|---|---|
| 界面框架 | Qt Widgets |
| 网络通信 | QNetworkAccessManager |
| 数据存储 | JSON + 本地文件系统 |
| 天气API | 和风天气v7接口 |
使用指南
快速启动
源码运行
git clone https://github.com/your-repo.git qmake && make ./ElectronicCalendar
直接运行
双击执行即可
操作指南
- 主窗口操作
- “今天”按钮:点击后,日历将立即切换至当前日期所在月份,并突出显示当前日期。
- “天气”按钮:点击打开天气窗口,在输入框输入城市名称(支持中文、拼音及模糊搜索)后点击查询,可获取该城市天气预报信息。
- “查看”按钮:点击后,将在主窗口下方显示所选日期的所有日程安排,若日程较多可滚动查看,再次点击可隐藏日程显示。
- “日程”按钮:点击弹出日程创建窗口,用户可在此输入日程标题、内容和时间(时间默认为当前时间,可手动修改),点击“保存”按钮将日程添加至指定日期。
- “退出”按钮:点击关闭程序。
- 日历区域操作:点击年份数字,可手动输入年份和月份跳转至指定日期;点击日历中的日期数字,可查看该日期日程安排(部分显示),并可通过“查看”按钮查看全部日程;点击右上角小三角,可查看全年日历。
- 天气窗口操作
- 在输入框输入城市信息后,点击右侧查询按钮,即可在窗口中展示所选城市的天气预报,包括日期、天气状况、温度范围、风向风力等信息。
- 日程创建窗口操作
- 在“标题”输入框输入日程标题,在“内容”输入框输入详细内容,点击“保存”按钮将日程信息保存为json文件,点击“清除”按钮可清空输入框内容,点击“关闭”按钮关闭日程创建窗口。
- 查看详细日程信息窗口操作
- 在此窗口中,用户可查看日程的详细信息,包括标题、内容和时间。直接修改文本框中的内容后,点击“修改”按钮可保存修改,点击“删除”按钮可删除该日程,修改或删除后窗口将自动关闭,主窗口日程信息将实时更新。
项目结构
电子日历/ ├── src/ │ ├── mainwindow.[h|cpp] # 主窗口逻辑 │ ├── weather.[h|cpp] # 天气模块 │ └── schedule/ # 日程管理模块 ├── data/ │ └── scheduleFile/ # JSON存储目录 └── resources/ # 图标/样式资源
注意事项
❗ 重要提示:
- 需要保持网络连接获取天气数据
- 请勿手动修改scheduleFile目录结构
- 推荐城市搜索格式:
城市名or拼音(例:北京orbeijing)
📧 技术支持:1816054322@qq.com

Comments NOTHING