小编Abd*_*had的帖子

冻结/挂起 tkinter GUI 等待线程完成

按下按钮后我的界面冻结了。我正在使用线程,但我不确定为什么仍然挂起。任何帮助将不胜感激。提前致谢

class magic:
    def __init__(self):
        self.mainQueue=queue.Queue()

    def addItem(self,q):
        self.mainQueue.put(q)

    def startConverting(self,funcName):
        if(funcName=="test"):
            while not self.mainQueue.empty():
                t = Thread(target = self.threaded_function)
                t.start()
                t.join()

    def threaded_function(self):

        time.sleep(5)
        print(self.mainQueue.get())

m=magic()
def helloCallBack():
   m.addItem("asd")
   m.startConverting("test")  //this line of code is freezing

B = tkinter.Button(top, text ="Hello", command = helloCallBack)

B.pack()
top.mainloop()
Run Code Online (Sandbox Code Playgroud)

python multithreading tkinter python-multithreading python-3.x

5
推荐指数
1
解决办法
4947
查看次数