# MetaCore - PyQt5版本 这是基于PyQt5重写的MetaCore项目管理平台,完全复制了原始Web版本的界面和功能。 ## 功能特性 ### 🎯 主要功能 - ✅ **项目管理**:创建、导入、删除、重命名项目 - ✅ **项目卡片**:三段式布局(标题+菜单、图片+类型标签、时间) - ✅ **收藏功能**:项目收藏/取消收藏 - ✅ **搜索过滤**:按名称搜索、按类型过滤 - ✅ **视图模式**:网格视图和列表视图 - ✅ **右键菜单**:完整的项目操作菜单 ### 🎨 界面特性 - ✅ **深色主题**:现代化的深色界面设计 - ✅ **响应式布局**:自适应窗口大小 - ✅ **侧边栏导航**:可展开/收起的导航菜单 - ✅ **模态对话框**:创建项目和导入项目对话框 - ✅ **拖拽支持**:文件拖拽导入功能 ## 安装和运行 ### 1. 环境要求 - Python 3.7+ - PyQt5 5.15.0+ ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 运行应用 ```bash python main.py ``` ## 项目结构 ``` MetaCore/ ├── main.py # 主程序入口 ├── requirements.txt # 依赖包列表 ├── README_PyQt5.md # 说明文档 ├── data/ # 数据模块 │ ├── __init__.py │ ├── project_manager.py # 项目数据管理器 │ └── projects.json # 项目数据文件(自动生成) └── ui/ # 界面模块 ├── __init__.py ├── main_window.py # 主窗口 ├── sidebar.py # 侧边栏组件 ├── project_area.py # 项目显示区域 ├── project_card.py # 项目卡片组件 ├── create_project_dialog.py # 创建项目对话框 ├── import_project_dialog.py # 导入项目对话框 └── styles.py # 样式表定义 ``` ## 主要组件说明 ### 1. 主窗口 (MainWindow) - 整体布局管理 - 菜单栏和状态栏 - 组件间信号连接 - 窗口事件处理 ### 2. 侧边栏 (Sidebar) - Logo区域 - 快速操作按钮 - 可展开的导航菜单 - 用户信息显示 ### 3. 项目区域 (ProjectArea) - 工具栏和搜索区域 - 网格/列表视图切换 - 项目卡片容器 - 空状态显示 ### 4. 项目卡片 (ProjectCard) - 三段式布局设计 - 悬停效果 - 右键菜单 - 收藏状态显示 ### 5. 创建项目对话框 (CreateProjectDialog) - 2:1布局比例 - 模板选择网格 - 项目信息表单 - 文件夹选择功能 ### 6. 导入项目对话框 (ImportProjectDialog) - 文件拖拽上传 - 导入选项配置 - 文件列表显示 - 进度反馈 ## 数据管理 ### 项目数据结构 ```python { "id": 1, "title": "项目名称", "date": "2024-06-08 15:56:35", "type": "industrial", "image": "🏭", "favorite": true, "path": "/path/to/project" } ``` ### 支持的项目类型 - `industrial` - 工业项目 🏭 - `smart` - 智能项目 💧 - `vr` - VR项目 🥽 - `game` - 游戏项目 🎮 - `design` - 设计项目 🎨 - `empty` - 空白项目 📁 ## 样式系统 ### 主题色彩 - **主色调**:深灰色 (#1a1a1a, #2a2a2a) - **边框色**:中灰色 (#3a3a3a, #4a4a4a) - **强调色**:紫色 (#8b5cf6, #7c3aed) - **文字色**:白色/灰色 (#ffffff, #cccccc, #888888) ### 组件样式 - 所有组件都有对应的ObjectName用于样式选择器 - 支持悬停状态和选中状态 - 统一的圆角和间距设计 - 平滑的过渡动画效果 ## 信号和槽机制 ### 主要信号 - `projects_changed` - 项目列表变化 - `project_added` - 项目添加 - `project_removed` - 项目删除 - `project_updated` - 项目更新 - `filter_changed` - 过滤条件变化 - `search_changed` - 搜索内容变化 ### 事件处理 - 鼠标点击事件 - 键盘快捷键 - 拖拽事件 - 窗口事件 ## 扩展功能 ### 可以添加的功能 1. **项目模板系统**:真实的项目模板创建和应用 2. **文件管理**:项目内文件的管理和预览 3. **版本控制**:Git集成和版本管理 4. **协作功能**:多用户协作和权限管理 5. **插件系统**:支持第三方插件扩展 6. **云同步**:项目数据云端同步 7. **导出功能**:项目打包和分享 ### 性能优化 1. **虚拟滚动**:大量项目时的性能优化 2. **缓存机制**:图片和数据缓存 3. **异步加载**:大文件异步处理 4. **内存管理**:及时释放不用的资源 ## 开发说明 ### 添加新组件 1. 在`ui/`目录下创建新的组件文件 2. 继承适当的PyQt5基类 3. 实现`init_ui()`方法 4. 添加必要的信号定义 5. 在样式表中添加对应样式 ### 修改样式 1. 在`ui/styles.py`中修改样式定义 2. 使用ObjectName作为选择器 3. 支持状态选择器(:hover, :checked等) 4. 遵循现有的颜色和间距规范 ### 数据持久化 - 项目数据自动保存到`data/projects.json` - 应用关闭时自动保存 - 启动时自动加载历史数据 - 支持数据备份和恢复 ## 与Web版本对比 ### 相同功能 - ✅ 完全相同的界面布局 - ✅ 相同的项目管理功能 - ✅ 相同的视觉设计风格 - ✅ 相同的用户交互逻辑 ### PyQt5版本优势 - ✅ 原生桌面应用体验 - ✅ 更好的性能表现 - ✅ 系统集成度更高 - ✅ 离线使用支持 - ✅ 文件系统直接访问 ### 技术差异 - **Web版本**:HTML + CSS + JavaScript - **PyQt5版本**:Python + PyQt5 + 自定义样式表 - **数据存储**:JSON文件 vs 浏览器存储 - **文件操作**:系统API vs Web API限制 这个PyQt5版本完全复制了Web版本的功能和外观,同时提供了更好的桌面应用体验。