Если вы создаете окна в бесконечном цикле, вы никогда не собираетесь возвращать управление main_loop. Вы можете выполнить одно из следующих действий:
# 1 Вы можете инициализировать целое число равным 0 и после определенного корня обновления счетчика, а затем снова продолжить создание окон, а после определенного обновления снова обновить корень счетчика, и это продолжается ...
import tkinter as tk
import time
def startInfiniteLoop():
i = 0
otherFrame = []
while True:
otherFrame.append(tk.Toplevel())
i += 1
if i%1000 == 0:
time.sleep(1)
root.update()
root = tk.Tk()
button_one = tk.Button(root, text="Infinite Window !", command=startInfiniteLoop)
button_one.grid(row=0, column=0)
root.mainloop()
# 2 Вы можете написать функцию, которая создает окно, и изнутри этой функции снова и снова вызывать ее через определенное время.
import tkinter as tk
def startInfiniteLoop():
otherFrame = tk.Toplevel()
root.after(1000, startInfiniteLoop)
root = tk.Tk()
button_one = tk.Button(root, text="Infinite Window !", command=startInfiniteLoop)
button_one.grid(row=0, column=0)
root.mainloop()