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

如何使windows在python tkinter中一次显示一个窗口?,python,tkinter,Python,Tkinter,如何使用tkinter使windows一次显示一个?例如,如果我输入6作为输入,并使用按钮调用函数,我需要它显示6个窗口,但每次显示一个窗口。它只会在按下上一个窗口的按钮后提示我下一个窗口 我尝试使用for循环在输入范围内循环,并基于该范围创建带有按钮的新窗口,但问题是它们都同时显示: from tkinter import * from tkinter.ttk import * root = Tk() root.title("Multiple windows") def

如何使用tkinter使windows一次显示一个?例如,如果我输入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循环并允许其继续?

我认为您不需要for循环来完成此操作

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)
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)
如果您想使用for循环来实现这一点

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)
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\u window()
调用


在这里,我们创建了一个带有forloop的函数,该函数等待窗口被销毁,并在按钮上添加了一个命令来销毁窗口。

Add
tempwindow.wait\u window()
。不知道是谁否决了你,但这正是我需要的!Thanks@Alteros我想我这里有个粉丝。如果你能接受我的回答,我将不胜感激