Skip to main content

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)

Source distribution for fry-qt6-signal 0.1.0
File Size Uploaded
fry_qt6_signal-0.1.0.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fry-qt6-signal 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page