# python-DailyAssistant **Repository Path**: x07210721/python-DailyAssistant ## Basic Information - **Project Name**: python-DailyAssistant - **Description**: Besti 2025-2026 2 py公选课实验四 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-14 - **Last Updated**: 2026-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### SmartDaily - 每日出行生活助手 #### 📋 项目简介 SmartDaily 是一款基于 Python 和 PyQt6 开发的桌面端生活助手应用,提供天气查询、日程管理、记事记账、每日总结等核心功能。采用模块化架构设计,支持 AI 智能建议(双模切换),具有良好的可扩展性。 #### ✨ 核心功能 🌤 天气查询:实时天气信息展示,支持 AQI 空气质量指数 📅 日程管理:日程安排与提醒功能 📝 记事本:日常笔记记录与管理 💰 记账功能:收支记录与分类统计 🤖 AI 建议:基于天气的智能出行建议(支持 API 模式与模板模式) 🎨 主题定制:支持动态主题切换与自定义样式 #### 🏗 项目结构 ``` SmartDaily/ ├── main.py # 程序入口 & 全局配置 ├── requirements.txt # Python 依赖清单 ├── design.txt # 详细设计文档 │ ├── config/ # 配置目录 │ ├── theme.json # UI 主题配置 │ ├── ai_config.json # AI 引擎配置 │ ├── paths.py # 路径管理 │ └── base_module.py # 模块基类定义 │ ├── core/ # 核心业务层 │ ├── db_manager.py # SQLite 数据库管理器 │ ├── scheduler.py # 定时任务调度器 │ └── event_bus.py # 事件总线(模块通信) │ ├── services/ # 服务适配层 │ ├── weather.py # 天气服务 │ ├── weather_service_threads.py # 天气服务线程 │ └── advice_engine.py # AI 建议引擎 │ ├── ui/ # 界面层 │ ├── main_window.py # 主窗口 │ ├── theme_manager.py # 主题管理器 │ ├── dialogs.py # 对话框组件 │ ├── weather_card.py # 天气卡片组件 │ ├── schedule_widget.py # 日程组件 │ ├── note_widget.py # 笔记组件 │ └── expense_widget.py # 记账组件 │ ├── plugins/ # 插件目录(预留扩展) ├── assets/ # 资源文件 │ └── icon.png # 应用图标 │ └── data/ # 数据目录 └── logs/ # 日志文件 ``` 🛠 技术栈 ``` 模块 技术选型 说明 UI 框架 PyQt6 原生桌面界面,支持 QSS 主题定制 数据存储 SQLite3 零依赖本地数据库 网络请求 httpx 异步 HTTP 客户端 定时调度 APScheduler 后台任务调度 打包工具 PyInstaller Windows 安装包生成 ``` 📦 安装与运行 环境要求 Python 3.9+ Windows 操作系统 安装依赖 ``` bash pip install -r requirements.txt ``` 运行程序 ``` bash python main.py ``` 打包发布 ``` bash pyinstaller --onefile --windowed --icon=assets/icon.png main.py ``` ⚙️ 配置说明 主题配置 (config/theme.json) ```json { "theme_name": "light_blue", "primary_color": "#4A90E2", "bg_color": "#F5F7FA", "card_radius": 12, "font_family": "Microsoft YaHei", "font_size": 14 } ``` AI 配置 (config/ai_config.json) ```json { "ai_enabled": false, "api_url": "https://api.deepseek.com/v1/chat/completions", "api_key": "", "model": "deepseek-chat", "timeout": 8 } ``` 将 ai_enabled 设置为 true 并填写有效的 API Key 即可启用 AI 建议功能 🏛 架构设计 核心设计理念 MVC 架构:UI、业务逻辑、数据层完全分离 事件驱动:通过 Event Bus 实现模块间解耦通信 策略模式:AI 建议引擎支持 API 调用与规则模板双模式切换 插件化:预留插件接口,支持功能模块热插拔 模块通信机制 所有功能模块继承 BaseModule 基类,通过事件总线进行通信: ```python class BaseModule(QObject): def init_ui(self, parent_layout): ... def load_data(self): ... def handle_event(self, event_name, data): ... def cleanup(self): ... ``` 数据库设计 使用 SQLite 存储以下数据: weather_log - 天气缓存 schedules - 日程安排 notes - 笔记内容 expenses - 记账记录 user_settings - 用户设置 🔌 扩展开发 添加新功能模块 在 plugins/ 目录创建新模块 继承 BaseModule 基类 实现标准接口方法 在主窗口中注册模块 自定义主题 修改 config/theme.json 中的颜色、字体等参数即可实现主题切换。 📝 日志 程序运行日志保存在 data/logs/ 目录下,便于问题排查。 📄 许可证 本项目仅供学习与个人使用。 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 版本: v1.0 开发语言: Python UI 框架: PyQt6