Cómo crear una nueva ventana haciendo clic en un botón de Tkinter

En este tutorial, le mostraremos cómo crear y abrir una nueva ventana de Tkinter haciendo clic en un botón de Tkinter.

Crear una nueva ventana de 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()

Normalmente utilizamos tk.Tk() para crear una nueva ventana de Tkinter, pero no es válido si ya hemos creado una ventana raíz como se muestra en los códigos anteriores.

El widget Toplevel]( http://effbot.org/tkinterbook/toplevel.htm ) es el correcto en esta circunstancia, ya que el widget Toplevel está pensado para mostrar ventanas pop-up adicionales.

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

Vincula la función createNewWindow al botón.

La nueva ventana es una ventana vacía en el ejemplo de arriba y puedes añadirle más widgets como si fuera una ventana raíz normal, pero necesitas cambiar el widget padre a la ventana Toplevel creada.

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

Como puedes ver, labelExample y buttonExample tienen su widget padre como newWindow pero no como app.

Artículo relacionado - Tkinter Button

  • Cómo pasar argumentos al comando del botón Tkinter
  • Cómo cerrar una ventana de Tkinter con un botón
  • Cómo cambiar el estado del Botón Tkinter
  • Cómo vincular varios comandos al botón Tkinter
  • comments powered by Disqus