如何在 python tkinter 中一次显示一个窗口?

如何使用 tkinter 一次显示一个窗口?例如,如果我输入 6 作为输入,并使用按钮调用函数,我需要它显示 6 个窗口,但一次显示一个。按下前一个按钮后,它只会提示我下一个窗口。


我尝试使用 for 循环遍历输入范围,并根据该范围创建带有按钮的新窗口,但问题是它们都同时出现:


from tkinter import *

from tkinter.ttk import *


root = Tk()

root.title("Multiple windows")


def multiplewindows():

    for i in range(int(number.get())):

        tempwindow = Toplevel()

        tempwindow.title(f"Window {i+1}")

        tempbutton = Button(tempwindow, text=f"Button {i+1}")

        tempbutton.pack(padx=10, pady=10)


number = Entry(root, width=5)

number.pack(padx=10, pady=10)

button = Button(root, text="Show", command=multiplewindows)

button.pack(padx=10, pady=10)


root.mainloop()

在新创建的窗口中按下按钮后,有什么方法可以暂停 for 循环并允许它继续?


杨__羊羊
浏览 226回答 2
2回答

宝慕林4294392

我认为你不需要循环来做到这一点def multiplewindows():  j=int(number.get())  tempwindow = Toplevel()  tempwindow.title(f"Window {j}")  tempbutton = Button(tempwindow, text=f"Button {j}")  tempbutton.pack(padx=10, pady=10)如果你想使用 for 循环来做到这一点def multiplewindows():  j=int(number.get())  for i in range(int(number.get())):    if (i+1)==j:      tempwindow = Toplevel()      tempwindow.title(f"Window {j}")      tempbutton = Button(tempwindow, text=f"Button {j}")      tempbutton.pack(padx=10, pady=10)

动漫人物

执行此操作的最简单方法就像使用调用的 tkinter 的内置方法推荐 acw1668 wait_window()。from tkinter import *from tkinter.ttk import *root = Tk()root.title("Multiple windows")def multiplewindows():    for i in range(int(number.get())):        tempwindow = Toplevel()        tempwindow.title(f"Window {i+1}")        tempbutton = Button(tempwindow, text=f"Button {i+1}", command=tempwindow.destroy)        tempbutton.pack(padx=10, pady=10)        tempwindow.wait_window()number = Entry(root, width=5)number.pack(padx=10, pady=10)button = Button(root, text="Show", command=multiplewindows)button.pack(padx=10, pady=10)root.mainloop()在这里,我们创建了一个带有 forloop 的函数,该函数等待窗口被销毁,并向 Button 添加了一个命令以销毁窗口。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python