PyCharm

Pycharm es un fantástico IDE para Python.
Cuenta con versión gratuita y versión de pago. Tú eliges.
Este es el IDE que utilizo en el curso
Ir a la página de descargaEn este capítulo vamos a ver cómo crear nuevas ventanas. Hasta ahora solo utilizábamos la ventana principal.
Para crear una ventana nueva lo podemos hacer con Toplevel():
Especificamos la nueva ventana y le podemos dar unas propiedades como a la ventana principal.
from tkinter import *
root = Tk()
root.title("Ventana principal")
root.geometry("300x100")
ventana_nueva1 = Toplevel()
ventana_nueva1.geometry("300x200")
ventana_nueva1.title("Ventana secundaria")
mainloop()
Como ocurría con LabelFrame() cada ventana, tiene su propio grid(). A partir de aquí, ya puedes empezar a utilizar todo lo visto hasta ahora con las nuevas ventanas.
Veamos algo nuevo, cómo comunicar las dos ventanas que acabo de crear, es decir, que interactúen de alguna manera.
En la ventana principal ponemos un Entry() y un botón para enviar un string que se muestre en la nueva ventana.
En este código, lo que hago es crear un simple Entry() en la ventana principal y un botón que va a enviar los datos introducidos.
Los datos son enviados gracias a la función envia_boton a la segunda ventana, la cual se crea con la misma función en el momento de la llamada.
entrada = Entry(root, width=35)
entrada.grid(row=0)
def envia_boton():
ventana_nueva1 = Toplevel()
ventana_nueva1.geometry("400x200")
ventana_nueva1.title("Ventana secundaria")
valor_entrada = entrada.get()
etiqueta = Label(ventana_nueva1,
text="El valor introducido en la ventana principal es: " + valor_entrada).grid(row=0)
envia = Button(root, text="Enviar", command=envia_boton).grid(row=1)
Podemos destruir o eliminar las nuevas ventanas. Voy a añadirle a la función envia_boton() un nuevo botón que se creará solo cuando se cree la nueva ventana, y su proposito es dar la opción de eliminarla o cerrarla gracias al destroy
cerrar_ventana = Button(root, text="Cerrar la ventana", command=ventana_nueva1.destroy).grid(row=2)
Además, podemos hacer un destroy a la ventana principal, lo que hará que el programa finalice con todas sus ventanas secundarias. Para ello, en el command, cambia ventana_nueva1 por root, si estás escribiendo el código tal cuál lo hago yo.
Ahora, una vez pulsado el botón, con la llamada a la función, nos aparecen dos nuevos botones, Cerrar ventana y Cerrar ventana principal.
Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.
Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.
No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.
Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.