ehentai-qt开发者指南:从源码结构到API调用的实战教程
ehentai-qt开发者指南:从源码结构到API调用的实战教程
ehentai-qt是一款功能强大的e-hentai/exhentai看图、搜索和下载工具,本指南将带你从源码结构入手,逐步掌握核心API调用方法,轻松上手二次开发。
项目架构概览
ehentai-qt采用模块化设计,主要分为以下核心目录:
- src/:核心源代码目录
- component/:UI组件库,包含自定义按钮、对话框等
- config/:配置管理模块
- interface/:UI界面定义
- server/:网络请求处理
- task/:任务管理系统
- tools/:工具函数库
- view/:视图层实现
ehentai-qt加载动画效果
快速启动项目
通过以下命令克隆并运行项目:
git clone https://gitcode.com/gh_mirrors/eh/ehentai-qt cd ehentai-qt # 安装依赖 pip install -r src/requirements.txt # 启动应用 python src/start.py启动流程在src/start.py中定义,主要完成:
- 初始化日志和配置
- 设置高DPI支持
- 创建主窗口并加载视图
核心模块解析
1. 任务管理系统
任务系统是ehentai-qt的核心,位于src/task/目录,主要包含:
task_http.py:网络请求任务
def AddHttpTask(self, req, callBack=None, backParam=None, cleanFlag=None): # 添加HTTP请求任务task_download.py:下载任务管理
def DownloadTask(self, url, path, downloadCallBack=None, completeCallBack=None): # 下载文件并支持回调task_waifu2x.py:图片放大任务
def AddConvertTaskByPath(self, loadPath, savePath, callBack, backParam=None): # 通过路径添加图片转换任务
2. 网络请求处理
src/server/req.py定义了各类API请求封装,例如:
# 书籍信息请求 def __init__(self, bookId, page=1, token="", site=""): # 构造请求参数3. UI组件系统
自定义UI组件位于src/component/,包含:
- 自定义按钮(button/)
- 对话框(dialog/)
- 布局管理器(layout/)
- 列表控件(list/)
API调用实战
发起网络请求
from server.req import BookInfoReq from task.qt_task import QtTask # 创建请求 req = BookInfoReq(bookId="12345", page=1) # 添加到任务队列 QtTask().AddHttpTask(req, callBack=self.OnBookInfoBack)处理下载任务
# 添加下载任务 QtTask().AddDownloadTask( url="https://example.com/image.jpg", path="/save/path/image.jpg", completeCallBack=self.OnDownloadComplete )图片处理任务
# 添加Waifu2x图片放大任务 QtTask().AddConvertTaskByPath( loadPath="/input/image.jpg", savePath="/output/image_2x.jpg", callBack=self.OnConvertComplete )开发注意事项
- 配置管理:使用src/config/setting.py管理应用设置
- 日志系统:通过tools/log.py记录调试信息
- 多线程处理:所有耗时操作通过任务系统异步执行
- 异常处理:使用qt_error.py中的工具函数捕获和显示错误
总结
本指南介绍了ehentai-qt的基本架构和核心API使用方法。通过任务系统、网络请求和UI组件的灵活组合,你可以快速扩展功能或定制个性化需求。更多细节请参考源码中的具体实现。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
