基于Qt C++的日历小程序

犀利的毛毛虫 发布于 2025-01-30 250 次阅读


https://github.com/bestxiangest/Qt-Calendar

本项目已开源至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

直接运行

下载release版exe文件

双击执行即可

操作指南

  1. 主窗口操作
    • “今天”按钮:点击后,日历将立即切换至当前日期所在月份,并突出显示当前日期。
    • “天气”按钮:点击打开天气窗口,在输入框输入城市名称(支持中文、拼音及模糊搜索)后点击查询,可获取该城市天气预报信息。
    • “查看”按钮:点击后,将在主窗口下方显示所选日期的所有日程安排,若日程较多可滚动查看,再次点击可隐藏日程显示。
    • “日程”按钮:点击弹出日程创建窗口,用户可在此输入日程标题、内容和时间(时间默认为当前时间,可手动修改),点击“保存”按钮将日程添加至指定日期。
    • “退出”按钮:点击关闭程序。
    • 日历区域操作:点击年份数字,可手动输入年份和月份跳转至指定日期;点击日历中的日期数字,可查看该日期日程安排(部分显示),并可通过“查看”按钮查看全部日程;点击右上角小三角,可查看全年日历。
  2. 天气窗口操作
    • 在输入框输入城市信息后,点击右侧查询按钮,即可在窗口中展示所选城市的天气预报,包括日期、天气状况、温度范围、风向风力等信息。
  3. 日程创建窗口操作
    • 在“标题”输入框输入日程标题,在“内容”输入框输入详细内容,点击“保存”按钮将日程信息保存为json文件,点击“清除”按钮可清空输入框内容,点击“关闭”按钮关闭日程创建窗口。
  4. 查看详细日程信息窗口操作
    • 在此窗口中,用户可查看日程的详细信息,包括标题、内容和时间。直接修改文本框中的内容后,点击“修改”按钮可保存修改,点击“删除”按钮可删除该日程,修改或删除后窗口将自动关闭,主窗口日程信息将实时更新。

项目结构

电子日历/
├── src/
│   ├── mainwindow.[h|cpp]    # 主窗口逻辑
│   ├── weather.[h|cpp]       # 天气模块
│   └── schedule/            # 日程管理模块
├── data/
│   └── scheduleFile/        # JSON存储目录
└── resources/               # 图标/样式资源

注意事项

❗ 重要提示:

  1. 需要保持网络连接获取天气数据
  2. 请勿手动修改scheduleFile目录结构
  3. 推荐城市搜索格式:城市名 or 拼音(例:北京 or beijing

📧 技术支持:1816054322@qq.com