用于长时间运行任务的单进程条(基于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 查看哈希值)