有人能帮我用Python中的Tkinter转换到一个新窗口吗?
我是个新手,我对使用windows和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
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
小部件可以在不影响应用程序其余部分的情况下销毁,因此适合用作对话框或其他单独窗口。谢谢,我会尝试一下