【问题标题】:Progress bar update in pythonpython中的进度条更新
【发布时间】:2020-04-17 07:56:26
【问题描述】:

我在 stackoverflow 中搜索如何在 tkinter 中实现 ProgressBar。这是代码:

def worker(x):

    return x+x
    #time.sleep(1)

def compute():

    pool = multiprocessing.Pool(2)
    objects=range(1,10)
    for i, _ in enumerate(pool.imap_unordered(worker, objects), 1):
        #print("completed =" +str(i/len(listF)))
        scanned.set((i/len(objects)*100))


if __name__ == '__main__':
    window = Tk()
    frame = Frame(master = window)
    frame.grid(row=0,column=0)
    button2 = Button(master=frame,text="Start", command=compute)
    button2.pack()

    frame = Frame(master = window)
    scanned = IntVar()
    frame.grid(row=3,column=0,padx=5,pady=10)
    progress = Progressbar(master=frame, orient='horizontal',maximum=100,  variable=scanned,mode='determinate')
    progress.pack()

    window.mainloop()

我发现这应该可行,但不适用于我的情况,因为条形图一次全部更新为 100%,而我看不到中间步骤。

【问题讨论】:

    标签: python tkinter progress-bar


    【解决方案1】:

    大家好,我解决了添加线程的问题。这是代码:

    def worker(x):
    
        return x+x
        #time.sleep(1)
    
    def precompute():
    
        t=threading.Thread(target=compute)
        t.start()
    
    def compute():
    
    
        pool = multiprocessing.Pool(2)
        objects=range(1,1000)
        for i, _ in enumerate(pool.imap(worker, objects), 1):
            #print("completed =" +str(i/len(listF)))
            scanned.set((i/len(objects)*100))
    
    
    if __name__ == '__main__':
        window = Tk()
        frame = Frame(master = window)
        frame.grid(row=0,column=0)
        button2 = Button(master=frame,text="Start", command=precompute)
        button2.pack()
    
        frame = Frame(master = window)
        scanned = IntVar()
        frame.grid(row=3,column=0,padx=5,pady=10)
        progress = Progressbar(master=frame, orient='horizontal',maximum=100,  variable=scanned,mode='determinate')
        progress.pack()
    
        window.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-08
      • 2020-11-05
      • 2015-01-24
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多