有人能帮我用Python中的Tkinter转换到一个新窗口吗?

有人能帮我用Python中的Tkinter转换到一个新窗口吗?,python,windows,tkinter,Python,Windows,Tkinter,我是个新手,我对使用windows和Tkinter很感兴趣。请温柔一点 这是我的代码,应该转到一个新窗口,然后在这个新窗口中打开一个图像。但是,不是将图像放入新窗口,而是将其放入第一个窗口 我认为这与顶级联赛有关,但我似乎无法使这项工作正常进行 import os from PIL import Image from PIL import ImageTk from Tkinter import Tk import os class Application(Frame): """ A G

我是个新手,我对使用windows和Tkinter很感兴趣。请温柔一点

这是我的代码,应该转到一个新窗口,然后在这个新窗口中打开一个图像。但是,不是将图像放入新窗口,而是将其放入第一个窗口

我认为这与顶级联赛有关,但我似乎无法使这项工作正常进行

import os
from PIL import Image
from PIL import ImageTk
from Tkinter import Tk
import os

class Application(Frame):
    """ A GUI application with three buttons. """

    def __init__(self, master):
        """ Initialize the frame"""
        Frame.__init__(self,master)
        self.grid()
        self.create_widgets()



    def create_widgets(self):
        """ Create button, text and entry widgets"""
        self.instruction = Label(self, text = "First off what is your name?")
        self.instruction.grid(row=0, column =0, columnspan=2, sticky=W)

        #self.first = first

        self.name = Entry(self)
        self.name.grid(row=1, column =1, sticky=W)

        self.submit_button = Button(self, text ="Submitsss", command = self.reveal)
        self.submit_button.grid(row = 2, column = 0, sticky =W)

        self.text = Text(self, width =35, height = 5, wrap = WORD)
        self.text.grid(row=3, column = 0, columnspan =2, sticky = W)

        self.ok_button = Button(self, text = "Next", command = self.go_to_2)
        self.ok_button.grid(row = 2, column = 0, sticky = E)

    def reveal(self):
        """Display message based on the name typed in"""
        content = self.name.get()

        message = "Hello %s" %(content)

        self.text.insert(0.0, message)

    def go_to_2(self):
        self.destroy()
        #root = Tk()
        #self.newApplication = tk.Toplevel(self.master)
        #self.app3 = Application2(self.newApplication)
        root.title("game")
        root.geometry("600x480")

        #root = Tk()
        #app2=Application2(root)

        self.newWindow = Tk.Toplevel()
        self.app = Application2(self.newWindow)


class Application2(Frame):
    """ A GUI application with three buttons. """

    def __init__(self, master):
        """ Initialize the frame"""
        Frame.__init__(self,master)
        self.grid()
        self.create_widgets()
        #master.panel()
        master.title("a")
        #self.root.mainloop()
        master.img = ImageTk.PhotoImage(Image.open("C:\Users\david\Pictures\sdf.jpg"))
        master.panel = Label(root, image = master.img)
        master.panel.pack()
    def create_widgets(self):


        self.submit_button = Button(self, text ="Submit")
        self.submit_button.grid(row = 2, column = 0, sticky =W)
        self.name = Entry(self)
        self.name.grid(row=1, column =1, sticky=W)
        self.ok_button = Button(self, text = "Next", command = self.go_to_3)
        self.ok_button.grid(row = 2, column = 0, sticky = E)
    def go_to_3(self):
        root = Tk()

        app2=Application3(root)
    #def create_picture(self):




class Application3(Frame):
    """ A GUI application with three buttons. """

    def __init__(self, master):
        """ Initialize the frame"""
        Frame.__init__(self,master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        self.button = Button(self, text = "ass")
        root.mainloop()

root = Tk()
root.title("game")
root.geometry("600x480")




app = Application(root)
root.mainloop() 

#app2= Application2(root)

#if __name__ == '__main__':
       # main()
请尝试以下代码:

import tkinter as tk

class MainWindow(tk.Frame):
    counter = 0
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)
        self.button = tk.Button(self, text="Create new window", 
                                command=self.create_window)
        self.button.pack(side="top")

    def create_window(self):
        self.counter += 1
        t = tk.Toplevel(self)
        t.wm_title("Window #%s" % self.counter)
        l = tk.Label(t, text="This is window #%s" % self.counter)
        l.pack(side="top", fill="both", expand=True, padx=100, pady=100)

if __name__ == "__main__":
    root = tk.Tk()
    main = MainWindow(root)
    main.pack(side="top", fill="both", expand=True)
    root.mainloop()

这将创建一个窗口,您可以按下按钮弹出一个新窗口。例如,该窗口上已经有一个标签。

要创建另一个toplevel小部件,请使用
toplevel
命令。不要再尝试调用
Tk()

例如,下面在屏幕上生成两个顶级Tk窗口:

import tkinter as tk
root = tk.Tk()
dlg = tk.Toplevel(root)

顶层之间的一个显著区别是,如果销毁
root
,则卸载Tk并销毁所有Tk窗口。但是,
Toplevel
小部件可以在不影响应用程序其余部分的情况下销毁,因此适合用作对话框或其他单独窗口。

谢谢,我会尝试一下