Awespykit 2.2.1
本次修复两个影响日常使用的问题。
修复:点右上角关闭按钮会崩溃
现象:点任意子窗口(包管理器、程序打包工具、镜像源设置、安装包下载器、云函数打包)右上角的 X,程序直接消失,没有任何提示。有时又不崩。
原因是两处叠加:
-
这些窗口在关闭时会调用一个函数来保存配置,但该函数名没有被导入。这行代码一执行就抛 NameError,而它运行在 Qt 的 C++ 事件处理里,Python 异常无法向上传播,只能直接崩掉进程 —— 所以看不到任何报错信息。
-
判断「是否有任务在运行」的逻辑只检查线程列表的长度,不检查线程是否真的还在运行。已经结束、但尚未被清理定时器移除的线程会被误判成运行中,于是关闭时试图弹出「任务正在进行」的对话框。在关闭流程里弹模态对话框会让 Qt 重入事件循环,同样导致崩溃。
第 2 点解释了为什么是不定时崩溃:是否触发取决于清理定时器有没有恰好跑过。现在按语义判断「是否有仍在运行的线程」,不再依赖定时器时机。
修复:启动窗口默认尺寸与内容不符
现象:启动窗口默认是一个窄高的竖条,图标挤成两列;必须先把它横向拉宽再缩回去,才会变成应该有的扁矩形(README 截图里的样子)。
原因:窗口的按钮是横向排列的,自然尺寸约 324x100,但默认尺寸写死成了 (260, 320) —— 一个竖长条。
现在首次启动按内容自然尺寸显示;你调整过尺寸后仍会照常记住。配置若被改坏(负数、字符串、长度不对)会回退到自适应,不会出现异常窗口。
测试
新增针对「关闭窗口」的回归测试:在独立子进程里逐个开关全部窗口,进程退出码非 0 即视为失败(这类崩溃只发生在底层,普通单元测试抓不到)。两个新测试都做过反向验证 —— 把代码改回旧写法时确实会失败。测试总数 15 -> 17。
产物
| 文件 | 说明 |
|---|---|
| Awespykit.exe | Windows 单文件可执行程序,双击即可运行,无需安装 Python |
| Awespykit.exe.sha256 | exe 的 SHA256 校验和 |
| awespykit-2.2.1-py3-none-any.whl | Python 分发包 |
| awespykit-2.2.1.tar.gz | 源码分发包 |
| python-dist.sha256 | 两个 Python 分发包的 SHA256 校验和 |
安装(PyPI 上的同名包不归本仓库所有,请用下面地址):
pip install https://github.com/laincat/AwesomePyKit/releases/download/2.2.1/awespykit-2.2.1-py3-none-any.whl