【问题标题】:How can I make a progress bar for Inkscape extension? [closed]如何为 Inkscape 扩展制作进度条? [关闭]
【发布时间】:2015-12-15 13:20:56
【问题描述】:

我用 Python 编写的 Inkscape 扩展做了一些需要相当长时间的大量工作。如何添加进度条以显示当前处理数据的百分比和“取消”按钮?

【问题讨论】:

    标签: python inkscape


    【解决方案1】:

    创建一个在每次操作后调用的回调函数。

    考虑以下场景。想象一下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%"
    

    希望这会有所帮助。如果没有,请告诉我。

    【讨论】:

    • 非常感谢!我已经根据我的代码调整了你的解决方案,它就像一个魅力!
    • 很高兴知道!!
    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多