Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我用Python编写的Inkscape扩展程序完成了一些耗时较长的大量工作。如何添加进度条以显示当前已处理数据的百分比和“取消”按钮?
现在,出现了一个问题,您将如何实施后备显示进度条。这是一个要点,解释了https://gist.github.com/ab9-er/843d1af20049e72e2016
另一个简单的后备可能像这样简单
希望这可以帮助。让我知道是否可以。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我用Python编写的Inkscape扩展程序完成了一些耗时较长的大量工作。如何添加进度条以显示当前已处理数据的百分比和“取消”按钮?
最佳答案
创建一个在每次操作后都会调用的回调函数。
请考虑以下情形。想象do_work
是工作函数的方法。创建一个函数fallback
,该函数将在您需要状态更新的每个操作之后调用。
def do_work(*args, **kwargs, fallback=None):
while processing_some_condition:
# You will need to find a way to get your total data value
total_data = total_value
"""
Do your processing call with *args & **kwargs
....
....
....
....
"""
elapsed_data = some_value # Get the remaining amount of data
if elapsed_data == total_data:
break
if fallback:
fallback(elapsed, total)
return your_result
现在,出现了一个问题,您将如何实施后备显示进度条。这是一个要点,解释了https://gist.github.com/ab9-er/843d1af20049e72e2016
另一个简单的后备可能像这样简单
def fallback(elapsed, total):
tx_pc = lambda chunk, full: chunk * 100 / full
print str(tx_pc(elapsed, total)) + "% operation completed"
if tx_pc(elapsed, total) == 100:
print "Operation complete: 100%"
希望这可以帮助。让我知道是否可以。
关于python - 如何制作Inkscape扩展程序的进度栏? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34290376/