我有一些代码通过 telnet 会话将一些代码推送到机器上。在此期间(大约 30 秒),GUI (tkinter) 挂起,似乎程序崩溃了。为了解决这个问题,我想使用进度条。因此,按下“发送”按钮后,它会打开一个新屏幕。到现在为止还挺好。现在,我希望进度条在 telnet 脚本完成后停止。所以我研究了一下,我认为我需要使用(多)线程。一旦 telnetthread 完成,progressbarthread 应该停止,我再次看到主屏幕。
这是迄今为止的脚本...
from tkinter import Button, Tk, HORIZONTAL
import time
from tkinter.ttk import Progressbar
import threading
class main(Tk):
def __init__(self):
super().__init__()
self.btn = Button(self, text='Run', command=self.pb)
self.btn.grid(row=0,column=0)
def pb(self):
def real_pb():
window = tk.Toplevel(root)
window.progress = Progressbar(window, orient=HORIZONTAL,length=100, mode='indeterminate')
window.progress.grid(row=1,column=0)
window.progress.start()
time.sleep(10)#to be changed to thread of telnet session//dummyscript
window.progress.stop()
window.progress.grid_forget()
window.destroy()
self.btn['state']='normal'
self.btn['state']='disabled'
threading.Thread(target=real_pb).start()
def dummyscript():
time.sleep(10)
print("slept")
root = main()
root.mainloop()
如何更改time.sleepdummyscript 的长度?
慕侠2389804
相关分类