在python中同时打开多个窗口

在python中同时打开多个窗口,python,user-interface,python-3.x,tkinter,python-3.4,Python,User Interface,Python 3.x,Tkinter,Python 3.4,我在python的父窗口上搜索并找到了一些东西,但这不是我想要的。我正在尝试制作一个简单的程序,当前一个窗口关闭时,打开一个窗口,然后再打开另一个窗口。我还试图实现某种循环或睡眠时间,以便在用户不这样做的情况下默认销毁窗口。这就是我所拥有的(我是新来的,请不要笑) 从tkinter导入* 导入时间 root=Tk() i=0 如果i

我在python的父窗口上搜索并找到了一些东西,但这不是我想要的。我正在尝试制作一个简单的程序,当前一个窗口关闭时,打开一个窗口,然后再打开另一个窗口。我还试图实现某种循环或睡眠时间,以便在用户不这样做的情况下默认销毁窗口。这就是我所拥有的(我是新来的,请不要笑)

从tkinter导入*
导入时间
root=Tk()
i=0
如果i<1:
根标题(“标题”)
logo=PhotoImage(file=“burger.gif”)
w1=标签(根,图像=徽标).pack()
时间。睡眠(3)
root.destroy()
i=i+1
如果i==1:
根标题(“标题”)
photoTwo=PhotoImage(file=“freedom.gif”)
labelTwo=Label(root,image=photoTwo).pack()
时间。睡眠(3)
root.destroy()
i=i+1
主循环。()

也许您正在寻找这样的产品:

from tkinter import *
import time




def openNewWindow():
    firstWindow.destroy()


    secondWindow = Tk()
    secondWindow.title("Second Window")

    photoTwo = PhotoImage(file="freedom.gif")
    labelTwo = Label(secondWindow, image=photoTwo).pack()

    secondWindow.mainloop()



firstWindow = Tk()


firstWindow.title("First Window")

logo = PhotoImage(file="burger.gif")
w1 = Label(firstWindow, image=logo).pack()

closeBttn = Button(firstWindow, text="Close!", command=openNewWindow)
closeBttn.pack()

firstWindow.mainloop()

这将在用户单击的第一个窗口中创建一个按钮。然后调用openNewWindow函数,该函数将销毁该窗口,并打开第二个窗口。我不确定是否有办法使用“窗口退出”按钮执行此操作。

要创建更可持续的窗口创建,请使用以下方法:

from tkinter import *
import time

def openThirdWindow(previouswindow):
    previouswindow.destroy()


    thirdWindow = Tk()
    thirdWindow.title("Third Window")

    photoTwo = PhotoImage(file="freedom.gif")
    labelTwo = Label(thirdWindow, image=photoTwo).pack()

    thirdWindow.mainloop()

def openSecondWindow(previouswindow):
    previouswindow.destroy()


    secondWindow = Tk()
    secondWindow.title("Second Window")

    photoTwo = PhotoImage(file="freedom.gif")
    labelTwo = Label(secondWindow, image=photoTwo).pack()

    closeBttn = Button(secondWindow, text="Close!", command= lambda: openThirdWindow(secondWindow))
    closeBttn.pack()

    secondWindow.mainloop()


def openFirstWindow():
    firstWindow = Tk()


    firstWindow.title("First Window")

    logo = PhotoImage(file="burger.gif")
    w1 = Label(firstWindow, image=logo).pack()

    closeBttn = Button(firstWindow, text="Close!", command= lambda: openSecondWindow(firstWindow))
    closeBttn.pack()

    firstWindow.mainloop()

openFirstWindow()
这会将每个窗口的打开置于一个单独的功能中,并通过按下按钮将窗口的名称传递到下一个功能中。另一种方法是将窗口名设置为全局,但这很麻烦

函数“lambda:”调用该函数,如果要通过命令传递某些内容,则必须在tkinter中键入该函数


我们首先启动整个过程,称为“openFirstWindow()”

您有什么问题?您需要什么帮助?使用一个根窗口并将内容放在两个框架上。打包frame1,稍后将其解包(frame1.Pack\u忘记或frame1.destroy)并打包frame2。如果需要,请更改root.title和其他属性。此外,决不要(几乎)将time.sleep与tk(或其他异步事件框架)一起使用。改用root.after。它确实打开了两个窗口。。。一个是第一个图像,另一个是空白。当点击按钮时,它会将第二个图像打包到第一个窗口:/@Bill Edited,我忘记更改照片应该位于的窗口。它打开了3个窗口。Tk窗口、“第一窗口”和“第二窗口”。Tk窗口保存了第一个图像,当单击该按钮时,它将第二个图像打包到Tk窗口中。您是否尝试过更新的代码?这对我来说很好,非常接近。我应该能够得到第二个图像显示在第二个窗口。谢谢
from tkinter import *
import time

def openThirdWindow(previouswindow):
    previouswindow.destroy()


    thirdWindow = Tk()
    thirdWindow.title("Third Window")

    photoTwo = PhotoImage(file="freedom.gif")
    labelTwo = Label(thirdWindow, image=photoTwo).pack()

    thirdWindow.mainloop()

def openSecondWindow(previouswindow):
    previouswindow.destroy()


    secondWindow = Tk()
    secondWindow.title("Second Window")

    photoTwo = PhotoImage(file="freedom.gif")
    labelTwo = Label(secondWindow, image=photoTwo).pack()

    closeBttn = Button(secondWindow, text="Close!", command= lambda: openThirdWindow(secondWindow))
    closeBttn.pack()

    secondWindow.mainloop()


def openFirstWindow():
    firstWindow = Tk()


    firstWindow.title("First Window")

    logo = PhotoImage(file="burger.gif")
    w1 = Label(firstWindow, image=logo).pack()

    closeBttn = Button(firstWindow, text="Close!", command= lambda: openSecondWindow(firstWindow))
    closeBttn.pack()

    firstWindow.mainloop()

openFirstWindow()