A small PyQt6 global signal bus and signal manager for unified application-wide signal usage.
Project description
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 可用。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fry_qt6_signal-0.1.0.tar.gz.
File metadata
- Download URL: fry_qt6_signal-0.1.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0736cb8ef68fd04e2f3db17f09453ca768554a457226bd9139b2317e699eeb8f
|
|
| MD5 |
9eb5e964a14569dfe8243d43961f1340
|
|
| BLAKE2b-256 |
bc801692d65c0b87fb0c22fa24b6631c3391c9941f481b97c7babab5ea2a2ee1
|
File details
Details for the file fry_qt6_signal-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fry_qt6_signal-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db9394bc94633f20df68cd62705fcd6a34c4cb0e350c3d34b2cc8229fe6be0d5
|
|
| MD5 |
f2fca17a623ea95d9a08aa3f2015360d
|
|
| BLAKE2b-256 |
a498ef482d038129f7abeb1be664c11dd95c588608dc064c1766d63429018a8e
|