zoukankan      html  css  js  c++  java
  • tkinter threading unblock GUI ( not check if the thread exists)

    from tkinter import *
    from tkinter.ttk import *
    import time
    import threading
    
    class Interface:
        def __init__(self, master):
            self.master = master
            self.browse_button= Button (master, text="Browse", command=self.browser)
            self.browse_button.pack()
            self.progressbar = Progressbar(mode="determinate", maximum=75)
    
        def browser (self):
            t = threading.Thread(target=self.read_file, args=("filename",))
            self.progressbar.pack()
            self.browse_button.config(state="disabled")
            self.master.config(cursor="wait")
            self.master.update()
    
            t.start()
            while t.is_alive():
                self.progressbar.step(1)
                self.master.update_idletasks()  # or try self.master.update()
                t.join(0.1)
    
            self.progressbar.config(value="0")
            self.progressbar.pack_forget()
            self.browse_button.config(state="enabled")
            self.master.config(cursor="")
    
        def read_file (self, filename):
            time.sleep(7)  # actually do the read here
    
    window = Tk()
    starter = Interface(window)
    window.mainloop()
    
  • 相关阅读:
    关于DRY原则
    类型之惑
    ThoughtWorks测试
    编程非易事
    瀑布与迭代的真实区别
    对TDD原则的理解
    自我练习
    C# CreateProcess的测试
    乱侃OOD
    复杂系统的五个属性
  • 原文地址:https://www.cnblogs.com/otfsenter/p/6562048.html
Copyright © 2011-2022 走看看