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

progress_meter的Python项目详细描述


这为长时间运行的任务提供了一个非常简单的进度条。

设计有点像EasyGUI, 允许简单脚本被gui化而不被重构为回调 以及一个事件循环。它自然可以用作 随和。接口不能很简单,但希望它只是 再复杂一点。

进度表基于this code 迈克尔·兰格。

高级界面如下:

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)初始化。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring data rest域驱动设计发布非聚合根实体   使用ContentValues提升整数列的值(Java、Android)   Google应用程序引擎(Java)+Spring管理的PersistenceManager   java如何使用JDT获取封闭方法节点?   java在字符串中首先计算负数运算   java Android如何在单击按钮时更改底部导航项的颜色   java理解Javafx运行时错误   swing Java创建笔刷笔划动作   java在非Netty客户端中从Netty服务器获取响应   java计数将参数传递给方法   java Android AIDL gen文件导致警告?   swing Java JFrame互动程序   scjp测试中的java正则表达式测试   Java中的桌面应用   java我可以使用spring security在cookies中存储完整的用户信息吗?记住我   java中棘手的方法重载   java忽略Mockito中的方法调用   java skipUntil和具有并发1的flatMap挂起在Reactor中   为什么我要关闭java。util。扫描仪变量?