0
我需要一個應用程序,基本上運行一個進度欄幾秒鐘,然後關閉自己。我使用this as an example,同時首先適用於Python 3.4,然後用於我自己的應用程序。但是,由於我構建代碼的方式,它將首先運行線程,它的任務是完成,然後才顯示程序。這對我來說是非常有問題的,而且在使用類時我沒有看到它。Tkinter凍結與多線程
from tkinter import ttk as ttk
from tkinter import *
import threading
import time
class App:
def afterLoading(self):
print('Loading finished')
def process(self,master):
time.sleep(2)
print('Thread Done')
self.afterLoading()
def __init__(self, master):
print()
master.geometry("1270x800")
master.resizable(0,0)
t1 = threading.Thread(target=self.process, args=(master,))
t1.start()
self.loadingFrame(master)
t1.join()
def loadingFrame(self, master):
frame = Frame(master, width=500, height=300)
frame.pack(side=BOTTOM, pady=50)
self.bar = ttk.Progressbar(frame, orient='horizontal', mode = 'indeterminate')
self.bar.pack(fill=BOTH)
self.bar.start(50)
self.loadingLabel = Label(frame, text="Please wait whilst the programme initializes.")
self.loadingLabel.pack()
root = Tk()
b = App(root)
root.mainloop()