# 壁纸软件 **Repository Path**: deepin20/wallpaper ## Basic Information - **Project Name**: 壁纸软件 - **Description**: Python 壁纸软件:一款基于 PySide2 的壁纸管理工具,专为Deepin / UOS桌面环境优化,支持本地壁纸、必应每日壁纸、Wallhaven 搜索、360 壁纸库,以及自动轮播、全屏幻灯放映、批量下载等功能。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-11 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🖼️ Python 壁纸软件 一款基于 PySide2 的壁纸管理工具,专为 **Deepin / UOS** 桌面环境优化,支持本地壁纸、必应每日壁纸、Wallhaven 搜索、360 壁纸库,以及自动轮播、全屏幻灯放映、批量下载等功能。 --- ## ✨ 特性 - 📂 **本地壁纸**:扫描 `~/Pictures/Wallpapers` 目录,一键导入并加入轮播。 - 🌐 **在线壁纸源**: - 必应每日壁纸(支持最近 7 天) - Wallhaven 搜索(无需 API 密钥) - 360 壁纸库(分类浏览,默认加载“美女”分类) - 🖼️ **预览与操作**:点击壁纸弹出大图预览,支持复制到剪贴板、下载到本地。 - ⏰ **自动轮播**:可设置切换间隔(10 秒 ~ 24 小时),支持顺序 / 随机切换。 - 📽️ **全屏幻灯放映**:全屏展示本地壁纸,支持键盘左右切换、ESC 退出。 - 📦 **批量下载**:批量下载必应历史壁纸,支持 UHD / 1080p / 768p 分辨率。 - 🎨 **跨桌面支持**:通过 `feh` 设置壁纸,并自动重启 `dde-desktop` 使生效(Deepin/UOS)。 --- ## 🔧 系统要求 - **操作系统**:Deepin / UOS(其他 Linux 发行版可能需要修改壁纸设置方式) - **Python 版本**:推荐 3.10(**不兼容 Python 3.13**,详见安装步骤) - **依赖软件**: - `feh`(用于设置壁纸) - `conda` 或 `python3-venv`(用于环境隔离) --- ## 📦 安装与运行 ### 1. 克隆或下载源码 将项目解压到目标目录,例如 `~/Desktop/壁纸软件/1`。 ### 2. 创建 Python 虚拟环境(推荐使用 Conda) ```bash conda create -n wallpaper python=3.10 conda activate wallpaper ``` ### 3. 安装依赖 ```bash pip install PySide2 requests Pillow ``` ### 4. 安装 feh(用于设置壁纸) ```bash sudo apt install feh # Deepin/UOS ``` ### 5. 启动软件 ```bash python main.py ``` --- ## 🚀 快速启动脚本 为了方便每次启动,创建一个 `run.sh` 脚本(在项目根目录): ```bash #!/bin/bash cd "$(dirname "$0")" source ~/miniconda3/etc/profile.d/conda.sh conda activate wallpaper python main.py ``` 赋予执行权限: ```bash chmod +x run.sh ``` 之后只需双击 `run.sh` 或在终端执行 `./run.sh` 即可启动。 --- ## 📖 使用说明 ### 主界面 - 壁纸以网格形式显示(默认每行 4 张),点击任意壁纸可预览大图。 - 顶部菜单栏包含所有功能入口。 ### 菜单功能 | 菜单 | 功能 | 说明 | |------|------|------| | **文件** | 导入本地图片 | 选择图片文件,添加到当前壁纸列表 | | | 退出 | 关闭程序 | | **在线壁纸** | 必应每日壁纸 | 输入天数(1~7),下载最近 N 天的必应壁纸 | | | Wallhaven 搜索 | 输入英文关键词,搜索并显示缩略图,点击可预览下载原图 | | | 360壁纸库 | 弹出分类列表,选择分类后加载该分类下的壁纸 | | **工具** | 刷新本地壁纸列表 | 重新扫描 `~/Pictures/Wallpapers` 目录 | | | 轮播设置 | 启用/禁用自动轮播,设置间隔时间和随机顺序 | | | 下一张壁纸 | 手动切换至下一张(若轮播列表有壁纸) | | | 幻灯放映 | 全屏展示当前列表中的本地图片(在线图片需先下载) | | | 批量下载必应壁纸 | 按日期范围下载必应壁纸,支持分辨率选择 | | **帮助** | 关于 | 显示版本和作者信息 | ### 快捷键 - 在幻灯放映模式下: - `→` 或 `Space`:下一张 - `←`:上一张 - `ESC`:退出放映 --- ## ❓ 常见问题 **Q:启动时出现“段错误”或导入 PySide2 失败?** A:请使用 Python 3.10,不要使用 3.11 或更高版本。推荐使用 Conda 创建独立环境。 **Q:壁纸无法设置(没有变化)?** A:请确保已安装 `feh` 并且当前桌面环境是 Deepin/UOS。如果使用其他发行版,需要修改 `app/utils/system_wallpaper.py` 中的实现(例如改用 `gsettings`)。 **Q:360壁纸加载失败或分类为空?** A:360 壁纸接口为第三方非官方服务,可能偶尔失效。程序会自动降级到本地壁纸或演示图片。 **Q:如何添加自己的壁纸?** A:将图片放入 `~/Pictures/Wallpapers` 目录,然后点击菜单“工具 → 刷新本地壁纸列表”即可。 --- ## 🛠️ 开发与贡献 ### 项目结构 ``` . ├── app/ # 核心代码 │ ├── controllers/ # 业务控制器(壁纸管理、下载、收藏) │ ├── models/ # 数据模型与数据库(SQLite) │ ├── services/ # 外部 API 服务(必应、Wallhaven、360) │ ├── utils/ # 工具函数(壁纸设置、缓存、配置) │ └── views/ # UI 视图(主窗口、对话框、控件) ├── assets/ # 运行时数据(缓存、下载、收藏、日志) ├── scripts/ # 辅助脚本(打包、图标生成、数据库迁移) ├── tests/ # 单元测试 ├── main.py # 程序入口 └── requirements.txt # Python 依赖 ``` ### 贡献方式 欢迎提交 Issue 或 Pull Request。如需添加新的壁纸源,请在 `app/services/` 下新建模块,并在 `main_window.py` 中集成。 --- ## 📄 许可证 本项目采用 **MIT 许可证**,可自由使用、修改和分发。详见 [LICENSE](LICENSE)(如未包含,默认 MIT)。 --- **Enjoy your wallpapers!** 🎉