Python/Tkinter如何创建窗口的无限副本?

2024-04-25 23:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个不断被创造的窗口,复制它自己。在

我试着做一个无限循环,每次都调用这个函数,但那不起作用。我也尝试在函数中创建一个,但它只是在关闭旧窗口后重新创建窗口。这是否意味着不能复制窗口?在

import tkinter 
import os


def win():
    A = True
    while A == True:
        window = tkinter.Tk()
        window.title('WHOOPS')
        window.geometry('100x100')
        window.configure(background= "green")
        lbl = tkinter.Label(window, text= 'whoops', bg= 'red')

        window.mainloop()


quit = False
while quit == False:
    win()

有人能告诉我如何复制一个窗口而不必硬编码一个新的块,例如,win2()和win3()中的每一个都有一个新函数?在

用户应该能够看到几乎无限的窗口流,这些窗口只能通过使用键盘中断或关闭shell/解释器来停止。在


Tags: 函数importfalsetruetitleostkinterdef
1条回答
网友
1楼 · 发布于 2024-04-25 23:34:16

如果在无限循环中创建窗口,则永远不会将控制权返回主循环。您可以执行以下操作之一:

#1您可以将一个整数初始化为0,然后在特定的count更新根之后,再次继续创建windows,在特定的count更新根之后,它会继续。。。在

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您可以编写一个函数来创建一个窗口,并在特定时间后从该函数内部调用自己。在

^{pr2}$

相关问题 更多 >