fry-qt6-signal
fry-qt6-signal 是一个 PyQt6 全局信号管理组件,用来把软件中的信号定义、emit、connect 集中管理,适合中大型 Qt 程序把 UI、IO、工作流、缓存、任务进度等模块解耦。
安装
要求 Python 3.10+。默认依赖 PyQt6 6.5.x,这是一个相对保守、适合打包分发的 Qt6 版本范围。
pip install fry-qt6-signal
开发本项目时:
python -m pip install -e ".[dev]"
最小用法
from fry_qt6_signal import create_signal_manager
manager = create_signal_manager()
def on_status(message: str) -> None:
print(message)
manager.connect("status_update_signal", on_status)
manager.emit("status_update_signal", "ready")
使用发射控制器
from fry_qt6_signal import Fry3dSignalEmitController, create_signal_manager
manager = create_signal_manager()
emitter = Fry3dSignalEmitController(manager)
emitter.emit_status_update_signal("开始处理")
emitter.emit_progress_update_signal(1, 10)
emitter.emit_task_completed_signal({"is_success": True, "message_str": "完成"})
使用连接控制器
from fry_qt6_signal import Fry3dSignalConnectController, create_signal_manager
class MainSignalController(Fry3dSignalConnectController):
def connect_signals(self) -> None:
self.connect("status_update_signal", self.on_status)
self.connect("progress_update_signal", self.on_progress)
def on_status(self, message: str) -> None:
print(f"status: {message}")
def on_progress(self, current: int, total: int) -> None:
print(f"progress: {current}/{total}")
manager = create_signal_manager()
controller = MainSignalController(manager)
常用信号
status_update_signal(str):状态栏或轻量状态消息progress_update_signal(int, int):当前进度、总进度display_image_numpy_signal(str, numpy.ndarray):显示或预览 NumPy 图像start_processing_signal()/stop_processing_signal():处理流程控制params_changed_signal(dict):参数变更task_completed_signal(dict):任务完成fry_3d_data_loaded_signal(dict):3D 数据加载完成fry_3d_workflow_step_finished_signal(dict):工作流单步完成fry_3d_workflow_finished_signal(dict):工作流整体完成fry_3d_cache_updated_signal(dict):缓存信息更新
完整说明见 docs/core_concepts.md。
示例
python examples/basic_usage.py
python examples/controller_usage.py
测试
python -m pytest
打包
python -m build
python -m twine check dist/*
生成的 wheel 和 sdist 会在 dist/ 目录中。发布到 PyPI 前,需要先注册并确认包名 fry-qt6-signal 可用。
Release files for fry-qt6-signal 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fry_qt6_signal-0.1.0.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fry_qt6_signal-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / fry_qt6_signal-0.1.0.tar.gz
| Download URL | fry_qt6_signal-0.1.0.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0736cb8ef68fd04e2f3db17f09453ca768554a457226bd9139b2317e699eeb8f
|
|
BLAKE2b-256 checksum How to use checksums |
bc801692d65c0b87fb0c22fa24b6631c3391c9941f481b97c7babab5ea2a2ee1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / fry_qt6_signal-0.1.0-py3-none-any.whl
| Download URL | fry_qt6_signal-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
db9394bc94633f20df68cd62705fcd6a34c4cb0e350c3d34b2cc8229fe6be0d5
|
|
BLAKE2b-256 checksum How to use checksums |
a498ef482d038129f7abeb1be664c11dd95c588608dc064c1766d63429018a8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|