Как создать новое окно, нажав кнопку в Tkinter

В этом уроке мы покажем, как создать и открыть новое окно Tkinter, нажав на кнопку в Tkinter.

Создать новое окно Tkinter

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()

Обычно мы используем tk.Tk() для создания нового окна Tkinter, но это недействительно, если мы уже создали корневое окно, как показано в вышеприведенных кодах.

Toplevel является подходящим виджетами в данном случае, так как виджет Toplevel предназначен для отображения дополнительных `всплывающих окон.

buttonExample = tk.Button(app, 
              text="Create new window",
              command=createNewWindow)

Он привязывает функцию createNewWindow к кнопке.

Новое окно в приведенном выше примере является пустым, и вы можете добавить в него больше виджетов, так же как и в обычное корневое окно, но при этом необходимо изменить родительский виджет на созданное окно Toplevel.

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()

Как вы могли видеть, labelExample и buttonExample имеют свой родительский виджет как newWindow, но не app.

Сопутствующая статья - Tkinter Button

  • Как передать Аргументы команде кнопки Tkinter
  • Как закрыть окно Tkinterа с помощью кнопки
  • Как изменить состояние кнопки Tkinter
  • Как привязать несколько команд к кнопке Tkinter
  • Как изменить размер кнопки Tkinter
  • comments powered by Disqus