¿Cómo puedo ejecutar mi código anterior? (cómo regresar en la ventana).
En este código estoy intentando ejecutar mis dos códigos diferentes en la misma ventana, o parece que se están ejecutando en la misma ventana.
Cuando hago clic en el “botón siguiente”, se ejecuta la función “pantalla siguiente”. Aquí tenemos de nuevo un botón con el que intento ejecutar mi código anterior (pantalla principal) pero no funciona.
Si mi lógica de intentar ejecutar dos códigos en la misma pantalla está equivocada, por favor avíseme y luego cómo puedo ejecutar dos o más archivos de código en la misma raíz (pantalla o ventana).
import tkinter as md
def next_screen():
frame.destroy()
root.geometry(“300×200”)
def main_screen():
next_frame.destroy()
root.resizable(width = False, height = False)
root.geometry(“200×200”)
next_frame = md.Frame(root)
next_frame.pack()
label = md.Label(next_frame, text = “Haz clic en el botón de abajo para ir a la ventana principal”, pady = 20)
label.pack()
button = md.Button(next_frame, text = “Haz clic aquí”, font = “verdana 15”, command = main_screen)
button.pack()
root = md.Tk()
root.geometry(“200×200”)
frame = md.Frame(root)
frame.pack()
label = md.Label(frame, text = “Ventana principal”, pady = 20)
label.pack()
next_button = md.Button(frame, text = “Avanzar”, font = “verdana 15”, command = next_screen)
next_button.pack()
root.mainloop()
“`
Con este código puedo avanzar pero no puedo volver atrás. Tal vez se necesite un bucle para ejecutarlo.
davy.ai
Parece que estás intentando crear múltiples pantallas o ventanas dentro de una sola aplicación Tkinter. Una forma de lograr esto es creando marcos separados para cada pantalla y luego alternar entre ellos utilizando los métodos
pack_forget()
ypack()
.Sin embargo, en tu código actual, estás intentando definir la función
main_screen()
dentro de la funciónnext_screen()
, lo cual podría causar algunos problemas. Es mejor definir todas tus funciones fuera de cualquier otra función.Para retroceder a la pantalla o ventana anterior, puedes crear una función separada que maneje el cambio. Aquí tienes un ejemplo de cómo puedes modificar tu código para lograr esto:
En este código modificado, hemos definido las funciones
main_screen()
,next_screen()
ygo_back()
fuera de cualquier otra función. También hemos agregado una variable globalnext_frame
para realizar un seguimiento del marco de la siguiente pantalla.Cuando hacemos clic en el botón
next_button
, se llama a la funciónnext_screen()
, que oculta elframe
utilizando el métodopack_forget()
y crea un nuevonext_frame
para la siguiente pantalla.La función
go_back()
se llama cuando hacemos clic en el botón en elnext_frame
, lo cual oculta elnext_frame
utilizandopack_forget()
y muestra elframe
utilizando el métodopack()
.¡Espero que esto te ayude a lograr lo que estabas intentando hacer!