У меня настроен код для распечатки на консоль, он прогрессирует, поскольку проходит через несколько тысяч элементов. Это прекрасно работает, пока я не собираюсь упаковать его и распространить среди других, поскольку консоли больше нет. Мой текущий метод работает, но графический интерфейс постоянно зависает после нескольких итераций, пока цикл продолжает работать.
Пример кода ниже работает, но мои циклы намного сложнее и зависают. Мне любопытно, есть ли лучший способ сделать это, поскольку я люблю использовать эти графические интерфейсы, но я пока не смог найти хороший способ отправки данных в графический интерфейс, пока я в другом цикле.
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()