# 网址导航 **Repository Path**: deepin20/url-navigator ## Basic Information - **Project Name**: 网址导航 - **Description**: 网址导航:基于 PyQt5 + QtWebEngine 的桌面网址导航与轻量级浏览器应用,采用左侧分类侧边栏 + 书签流式布局 + 内嵌浏览器,方便快速访问常用网站。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-14 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🌐 网址导航 基于 PyQt5 + QtWebEngine 的桌面网址导航与轻量级浏览器应用,采用左侧分类侧边栏 + 书签流式布局 + 内嵌浏览器,方便快速访问常用网站。 ![截图占位](screenshot.png) --- ## ✨ 功能特性 - 📂 **分类管理**:左侧分类列表,支持长名称换行,点击切换书签 - 📌 **书签网格**:流式布局(`QFlowLayout`),按钮自适应文本宽度,自动换行 - 🖥️ **内嵌浏览器**:基于 QtWebEngine,支持普通链接点击、新窗口自动重定向到当前标签页 - 🎨 **统信 UOS 风格**:适配 deepin/UOS 桌面环境,提供 DTK 风格样式表 - 🚀 **一键启动**:默认加载“学习强国”,也可通过 `sites.json` 自定义默认页 - 🌍 **多格式配置**:支持 `sites.json` 的三种格式(分类/书签、扁平列表、旧格式) --- ## 📦 安装与运行 ### 依赖环境 - Python 3.6+ - PyQt5 - PyQtWebEngine ### 快速开始 ```bash # 克隆或下载项目 git clone https://github.com/yourusername/url-navigator.git cd url-navigator # 安装依赖(推荐使用虚拟环境) pip install -r requirements.txt # 运行 python main.py ``` 若在 deepin/UOS 下遇到 Qt 平台插件问题,已通过 `main.py` 自动设置环境变量,无需手动配置。 --- ## 🗂️ 文件结构 ``` url-navigator/ ├── main.py # 程序入口,包含窗口布局与默认页加载 ├── modules/ │ ├── browser.py # 自定义浏览器视图(QWebEngineView) │ ├── sidebar.py # 侧边栏(分类列表 + 书签区域) │ ├── flowlayout.py # 流式布局实现(QFlowLayout) │ └── config_loader.py # 配置文件加载器(支持三种格式) ├── assets/ │ ├── style.qss # DTK 风格样式表(可选) │ └── icon.png # 应用图标(PNG 格式,256x256) ├── sites.json # 书签数据(默认示例) ├── requirements.txt # Python 依赖列表 └── README.md # 本文件 ``` --- ## ⚙️ 配置书签 编辑 `sites.json` 即可管理书签分类与站点。支持三种格式: 1. **分类格式(新)**: ```json [ { "name": "小说", "bookmarks": [ {"name": "起点中文网", "url": "https://www.qidian.com/"} ] } ] ``` 2. **旧格式(兼容)**: ```json [ { "category": "搜索引擎", "sites": [ {"name": "百度", "url": "https://www.baidu.com/"} ] } ] ``` 3. **扁平列表**(自动归入“所有网站”): ```json [ {"name": "GitHub", "url": "https://github.com/"} ] ``` --- ## 🛠️ 自定义默认页 修改 `main.py` 中 `UrlNavigator._load_default_page` 方法,例如加载百度: ```python def _load_default_page(self): self.browser.load_url("https://www.baidu.com/") ``` --- ## 🖥️ 开发与打包 ### 使用 PyInstaller 打包为独立可执行文件 ```bash pip install pyinstaller pyinstaller --onefile --windowed --add-data "assets:assets" --add-data "sites.json:." main.py ``` - 打包后可在 Linux 上直接运行(推荐在 deepin/UOS 环境下打包)。 --- ## 📝 依赖项(requirements.txt) ``` PyQt5>=5.15.0 PyQtWebEngine>=5.15.0 ``` --- ## 🤝 贡献 欢迎提交 Issue 或 Pull Request。主要方向: - 增加搜索框/地址栏 - 支持自定义书签排序 - 适配 Windows/macOS 样式 - 添加深色模式 --- ## 📄 许可证 [MIT License](LICENSE) © 2026 --- ## 📧 联系 如有问题,请通过 [GitHub Issues](https://github.com/yourusername/url-navigator/issues) 反馈。