【发布时间】:2019-04-16 21:15:44
【问题描述】:
我的代码设置为打印出来以控制它的进度,因为它循环了几千个项目。这工作得非常好,直到我将它打包并分发给其他人,因为不再有控制台。我当前的方法有效,但在循环继续运行时,GUI 在几次迭代后始终挂起。
下面的示例代码运行,但我的循环要复杂得多并且挂断了。我很好奇是否有更好的方法来实现这一点,因为我喜欢使用这些 GUI,但是当我处于不同的循环中时,我还没有找到一种将数据发送到 GUI 的好方法。
from tkinter import *
import time
def do_loop(num_cycles):
for i in range(0, int(num_cycles)):
time.sleep(.25)
# print(i)
GUI_MSG.set(str(i))
Tk.update_idletasks(FORM)
FORM = Tk()
GUI_MSG = StringVar()
FORM.wm_title('Perform Element Analysis')
IO_FRAME = LabelFrame(FORM, text=' Input/Output Directories ')
IO_FRAME.grid(row=0, sticky='W', padx=5, pady=5, ipadx=5, ipady=5)
Label(IO_FRAME, text="Numer of Loops").grid(
row=1, column=1, padx=5, pady=(10, 2), sticky='E')
NUMBER_LOOPS = Entry(IO_FRAME, width=10)
NUMBER_LOOPS.grid(row=1, column=2, columnspan=4)
Button(FORM, text='Generate Tables', command=lambda: do_loop(
NUMBER_LOOPS.get())).grid(row=3, column=0, sticky='WE', padx=5, pady=5)
Label(FORM, textvariable=GUI_MSG).grid(row=2, sticky='WE', padx=5, pady=20)
FORM.mainloop()
【问题讨论】:
标签: python python-3.x tkinter