Skip to main content

A reusable PyQt6 QWidget for displaying task progress, messages, pause state, and time estimates.

Project description

fry-qt6-progress-widget

fry-qt6-progress-widget 是一个可复用的 PyQt6 任务进度组件。核心类是 GeneralTaskProgressWidget,它继承自 QWidget,适合直接放进任意布局;如果你的程序需要 dock,可以使用附带的 GeneralTaskProgressDock 薄包装器,或者自己把 widget 放进 QDockWidget

安装

发布到 PyPI 后:

pip install fry-qt6-progress-widget

本地开发安装:

pip install -e ".[dev]"

最小用法

import sys

from PyQt6.QtWidgets import QApplication
from fry_qt6_progress_widget import GeneralTaskProgressWidget

app = QApplication(sys.argv)

widget = GeneralTaskProgressWidget()
widget.begin_task(project_id="demo", task_name="导入数据", total=100)
widget.update_progress(current=30, total=100, detail_info="已完成 30 条")
widget.show()

sys.exit(app.exec())

字典信号兼容用法

如果你已有任务系统会发出字典,可以直接调用 handle_task_progress

widget.handle_task_progress(
    {
        "project_id_str": "demo",
        "task_name_str": "导入数据",
        "now_progress_num": 30,
        "total_num": 100,
        "info_type": "信息",
        "detail_info": "已完成 30 条",
    }
)

Dock 用法

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QMainWindow
from fry_qt6_progress_widget import GeneralTaskProgressDock

window = QMainWindow()
dock = GeneralTaskProgressDock(window)
window.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, dock)
dock.begin_task(project_id="demo", task_name="后台任务", total=10)

常用 API

  • begin_task(project_id="", task_name="任务", total=None): 开始任务并重置显示。
  • update_progress(current=None, total=None, task_name=None, project_id=None, info_type="信息", detail_info=""): 更新进度和详情消息。
  • finish_task(project_id=None, message="任务已完成", hide=False): 标记任务完成。
  • set_paused_state(is_paused): 切换暂停/恢复状态。
  • append_message(info_type, message): 追加详情日志。
  • set_project_filter(project_id): 只接收指定项目 ID 的进度更新。
  • get_params_dict() / load_params_dict(snapshot): 保存和恢复组件状态。

示例和文档

开发与验证

pytest
python -m build

构建后会生成 dist/,发布前建议检查:

twine check dist/*

真正发布到 PyPI 需要维护者账号和 token:

twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fry_qt6_progress_widget-0.1.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fry_qt6_progress_widget-0.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file fry_qt6_progress_widget-0.1.0.tar.gz.

File metadata

  • Download URL: fry_qt6_progress_widget-0.1.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fry_qt6_progress_widget-0.1.0.tar.gz
Algorithm Hash digest
SHA256 44463b7b6550ad59465f0be4b5f3e75b723f98cdbebac55b2a4b147c2f3d6b58
MD5 11f18be056e7664d87584710db5c9d13
BLAKE2b-256 5181d51f39974b945f6ab7b4260da76fa558f559ae2876fbaa4203bcc2629298

See more details on using hashes here.

File details

Details for the file fry_qt6_progress_widget-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fry_qt6_progress_widget-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37e23e97f5a90fc1305c8dc67bd6a07d4a5a431089013c719a516fbf963dcfe6
MD5 dbcfd650e53aa3ce4db4c195c783c53a
BLAKE2b-256 d3cc8d8fba855869eba3ca1e4c35f6d9bce83c7bce10d706b957d06fb2f549c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page