Wie man ein neues Fenster durch Anklicken einer Schaltfläche in Tkinter erstellt

Jinku Hu 25 Juni 2020
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.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - Tkinter Button