# ShortVideoClient **Repository Path**: ch__hhh/ShortVideoClient ## Basic Information - **Project Name**: ShortVideoClient - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 109 - **Created**: 2026-06-08 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 抖音短视频客户端 基于 PyQt6 开发的简易短视频客户端主界面,模仿抖音官网设计。 ## 功能特性 - ✅ 三栏布局(左侧边栏 + 顶部栏 + 主内容区) - ✅ 深色主题配色(背景 #121212,高亮红色 #FE2C55) - ✅ 响应式流式布局,自动调整视频卡片数量 - ✅ 视频卡片 hover 动画效果 - ✅ 实时搜索过滤功能 - ✅ 视图切换(精选/推荐/搜索) - ✅ 登录对话框 - ✅ 搜索历史和热门标签 ## 项目结构 ``` ShortVideoClient/ ├── requirements.txt # 依赖包列表 ├── README.md # 项目说明 ├── src/ │ ├── main.py # 程序入口 │ ├── main_window.py # 主窗口类 │ ├── flow_layout.py # 自定义流式布局 │ ├── data_manager.py # 数据管理器 │ ├── video_card.py # 视频卡片组件 │ ├── login_dialog.py # 登录对话框 │ ├── data/ │ │ └── videos.json # 视频元数据配置 │ ├── styles/ │ │ └── style.qss # QSS 样式表 │ ├── images/ # 图片资源 │ └── videos/ # 视频资源 ``` ## 安装和运行 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 运行程序 ```bash python src/main.py ``` ## 使用说明 ### 主要功能 1. **浏览视频** - 启动后默认显示精选视频 - 点击左侧边栏切换视图(精选/推荐/搜索) 2. **搜索视频** - 在顶部搜索框输入关键词 - 实时过滤视频(延迟 300ms) - 点击清除按钮恢复全部视频 3. **查看搜索页面** - 点击左侧"🔍 搜索"选项 - 查看搜索历史记录 - 点击热门标签快速搜索 4. **登录功能** - 点击右上角"登录"按钮 - 输入用户名和密码 - 可勾选"记住密码" - 登录后显示用户头像 5. **视频卡片交互** - 鼠标悬停:卡片放大并显示红色边框 - 点击卡片:显示提示信息(播放功能开发中) ### 键盘快捷键 - 窗口最小尺寸:1000x700 像素 - 可调整窗口大小,视频卡片会自动重新排列 ## 技术栈 - **GUI 框架**: PyQt6 - **布局方案**: 自定义 FlowLayout - **样式管理**: QSS 样式表 - **动画**: QPropertyAnimation - **数据存储**: JSON 配置文件 ## 开发说明 ### 添加新视频 编辑 `src/data/videos.json` 文件,添加新的视频条目: ```json { "id": 8, "video_file": "sample8.mp4", "thumbnail": "card8.jpeg", "title": "视频标题", "author": "作者名称", "publish_time": "2025-06-08", "is_featured": true, "is_recommended": false } ``` ### 修改样式 编辑 `src/styles/style.qss` 文件,修改界面样式。 ### 自定义配置 - 视频缩略图会随机分配(从 card1-16.jpeg 中随机选择) - 搜索历史和热门标签可在 `videos.json` 中配置 ## 注意事项 1. **图片资源**: 确保 `src/images/` 目录包含 card1-16.jpeg 图片 2. **Qt Designer**: 本项目使用代码创建 UI,未使用 .ui 文件 3. **警告信息**: 运行时可能出现 "QWidget::setLayout" 警告,不影响功能 4. **Python 版本**: 建议使用 Python 3.8+ ## 验收标准 - [x] 主界面正常启动,无崩溃 - [x] 窗口最小尺寸限制为 1000x700 - [x] 左侧边栏、顶部栏、主内容区完整显示 - [x] 侧边栏三个导航项可点击切换视图 - [x] 视频卡片按流式布局排列,自动换行 - [x] 调整窗口宽度时卡片数量自动调整(每行 3-4 个) - [x] 视频卡片 hover 时有缩放和边框动画 - [x] 点击卡片显示提示信息 - [x] 顶部搜索框可输入并实时过滤卡片 - [x] 搜索结果为空时显示提示 - [x] 清除按钮可清空搜索并恢复全部卡片 - [x] 登录按钮可弹出登录对话框 - [x] 登录对话框包含所有必需元素 - [x] 搜索视图显示历史记录和热门标签 - [x] 整体配色符合深色系要求 ## 后续改进方向 1. 实现视频播放功能 2. 添加真实的用户认证系统 3. 集成后端 API 4. 实现点赞、评论等社交功能 5. 添加个性化推荐算法 6. 使用数据库替代 JSON 文件 ## 许可证 本项目仅用于教学演示目的。