跳转到主要内容

用于长时间运行任务的单进程条(基于Tkinter)

项目描述

此软件提供用于长时间运行任务的非常简单的进度条。

设计在一定程度上类似于EasyGUI,允许简单的脚本被GUI化,而无需重构为回调和事件循环。它可以自然地作为EasyGUI工具的补充。界面可能不会那么简单,但希望它只是稍微复杂一些。

progress_meter基于Michael Lange的此代码

高级接口看起来是这样的

from progress_meter import withprogress

@withprogress(300, color="green")
def demo(foo, bar=None):
    for i in range(300):
        # Do one (or a few) steps of processing, then...
        yield i

demo()

您可以使用异常来检查用户是否在任务完成之前取消了进程

try:
    demo()
except UserCancelled:
    print("Cancelled")
else:
    print("Completed")

还有一个较低级别的接口,您可以直接实例化窗口

from progress_meter import MeterWindow

def _demostep(meter, value):
    meter.set(value)
    if value < 1.0:
        value = value + 0.005
        meter.after(50, lambda: _demostep(meter, value))
    else:
        meter.set(value, 'Demo successfully finished')

def demo():
    root = MeterWindow(className='meter demo')
    root.meter.set(0.0, 'Starting demo...')
    root.after(1000, lambda: _demostep(root.meter, 0.0))
    root.mainloop()

要在更完整的GUI中单独使用进度条,您可以使用此模块中的Meter类(它继承自tkinter.Frame)。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

progress_meter-1.0.zip (5.1 kB 查看哈希值)

上传时间:

progress_meter-1.0.tar.gz (4.3 kB 查看哈希值)

上传时间:

由以下支持