# ShortVideoClient **Repository Path**: zzpyqt6/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-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 抖音短视频客户端 一个使用 PyQt6 开发的模仿抖音官网的简易短视频客户端主界面。 ## 功能特性 - ✅ **三栏布局**:左侧边栏 + 顶部栏 + 主内容区 - ✅ **响应式视频卡片网格**:自动根据窗口宽度调整列数(2-5列) - ✅ **侧边栏导航**:精选、推荐、关注三个菜单项,支持页面切换 - ✅ **深色主题样式**:符合抖音风格的深色UI设计 - ✅ **视频播放功能**:点击卡片可播放对应视频,支持播放/暂停/进度控制 - ✅ **随机数据展示**:每次启动随机配对视频和缩略图 ## 技术栈 - Python 3.x - PyQt6 >= 6.5.0 - PyQt6-multimedia(用于视频播放) ## 安装步骤 1. **克隆或下载项目** ```bash cd ShortVideoClient ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 或者手动安装: ```bash pip install PyQt6 PyQt6-multimedia ``` 3. **验证安装** ```bash python -c "from PyQt6.QtMultimedia import QMediaPlayer; print('安装成功')" ``` ## 运行方法 在项目根目录下运行: ```bash python src\main.py ``` ## 项目结构 ``` ShortVideoClient/ ├── src/ │ ├── main.py # 程序入口 │ ├── widgets/ # UI组件 │ │ ├── __init__.py │ │ ├── main_window.py # 主窗口 │ │ ├── sidebar.py # 侧边栏 │ │ ├── topbar.py # 顶部栏 │ │ ├── video_grid.py # 视频网格容器 + FlowLayout │ │ ├── video_card.py # 视频卡片 │ │ └── video_player.py # 视频播放器对话框 │ ├── utils/ # 工具函数 │ │ ├── __init__.py │ │ └── data_loader.py # 数据加载工具 │ ├── styles/ # 样式文件 │ │ └── stylesheet.qss # 全局样式表 │ ├── videos/ # 视频文件(sample1-7.mp4) │ └── images/ # 图片资源 ├── openspec/ # OpenSpec规范文档 ├── requirements.txt # 依赖清单 └── README.md # 项目说明 ``` ## 使用说明 ### 基本操作 1. **浏览视频**:启动程序后,主页面显示7个视频卡片 2. **切换页面**:点击左侧边栏的"精选"、"推荐"、"关注"切换页面 3. **播放视频**:点击任意视频卡片打开播放器 4. **控制播放**: - 点击 ▶/⏸ 按钮切换播放/暂停 - 拖拽进度条跳转到指定位置 - 按空格键播放/暂停 - 按 Esc 键关闭播放器 5. **窗口缩放**:拖动窗口边缘改变大小,视频卡片会自动调整列数 ### 键盘快捷键 - `Space`:播放/暂停视频 - `Esc`:关闭视频播放器 ## 设计规范 ### 颜色方案 - 主背景色:`#121212` - 卡片背景色:`#1E1E1E` - 卡片悬停色:`#2A2A2A` - 主要文字色:`#FFFFFF` - 次要文字色:`#B0B0B0` - 高亮红色:`#FE2C55` - 边框色:`#333333` ### 响应式布局 - 宽屏(≥1200px):每行显示 4-5 个卡片 - 中屏(800-1200px):每行显示 3 个卡片 - 窄屏(<800px):每行显示 2 个卡片 ## 注意事项 1. **视频文件**:确保 `src/videos/` 目录中有 sample1-7.mp4 文件 2. **缩略图**:确保 `src/images/` 目录中有 card*.jpeg 文件 3. **图标文件**:确保有 hot3/4.png, recommend3/4.png, follow3/4.png 等图标 4. **多媒体支持**:需要安装 PyQt6-multimedia 才能播放视频 ## 故障排除 ### 问题1:视频无法播放 **解决方案**: ```bash pip install PyQt6-multimedia ``` ### 问题2:样式表加载失败 **检查**: - 确保 `src/styles/stylesheet.qss` 文件存在 - 确保从项目根目录运行程序 ### 问题3:图标显示异常 **说明**:如果图标文件缺失,程序会自动使用emoji替代,不影响功能使用。 ## 开发说明 本项目使用 OpenSpec 规范驱动开发流程实现,所有需求和设计文档位于 `openspec/changes/douyin-short-video-client/` 目录。 ## 许可证 本项目仅用于教学和学习目的。 --- **祝使用愉快!** 🎉