Wie man ein neues Fenster durch Anklicken einer Schaltfläche in Tkinter erstellt
In diesem Tutorial zeigen wir Ihnen, wie Sie ein neues Tkinter-Fenster erstellen und öffnen, indem Sie auf eine Schaltfläche in Tkinter klicken.
Ein neues Tkinter-Fenster erstellen
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
Normalerweise benutzen wir tk.Tk()
, um ein neues Tkinter-Fenster zu erstellen, aber es ist nicht gültig, wenn wir bereits ein Root-Fenster erstellt haben, wie in den obigen Codes gezeigt.
Toplevel
ist in diesem Fall das richtige Widget, da das Toplevel
Widget dazu gedacht ist, zusätzliche pop-up
Fenster anzuzeigen.
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
Es bindet die createNewWindow
Funktion an den Button.
Das neue Fenster ist im obigen Beispiel ein leeres Fenster, und Sie könnten weitere Widgets hinzufügen, genau wie in einem normalen Root-Fenster, aber Sie müssen das Elternwidget in das erzeugte Toplevel
-Fenster ändern.
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
labelExample = tk.Label(newWindow, text="New Window")
buttonExample = tk.Button(newWindow, text="New Window button")
labelExample.pack()
buttonExample.pack()
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
Wie Sie sehen konnten, haben labelExample
und buttonExample
ihr Elternwidget als newWindow
, aber nicht als app
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook