es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecución de comando al cerrar MessageBox de Tkinter “X”

Estoy intentando reiniciar mi GUI principal / detener el flujo del programa cuando hago clic en el botón “X” en mi cuadro de diálogo tkinter messagebox. ¿Algún idea de cómo hacer esto?

PD: He leído muchos hilos sobre cerrar la GUI principal en sí, pero nada específico sobre messagebox.

Por defecto, mi código procede a pedirme una ruta de salida utilizando el método filedailog.askdirectory () al hacer clic en “ok”, o al cerrar el messagebox.

Mi cuadro de diálogo y la GUI principal en segundo plano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para detener el flujo del programa cuando se hace clic en el botón “X” en el cuadro de diálogo de tkinter, se puede unir el evento WM_DELETE_WINDOW a la ventana del cuadro de diálogo. Esto capturará el evento cuando el usuario haga clic en el botón “X” y le permitirá ejecutar una función personalizada para manejar el evento.

    Aquí hay un ejemplo de código:

    import tkinter as tk
    from tkinter import messagebox
    
    root = tk.Tk()
    root.withdraw()
    
    def on_messagebox_close():
        # función personalizada para manejar el cierre del cuadro de diálogo
        # p. ej. detener el flujo del programa, salir elegante
        pass
    
    messagebox.showinfo("Título", "Mensaje")
    messagebox.bind("<wm_delete_window>", on_messagebox_close)
    
    root.mainloop()
    

    En la función on_messagebox_close, puede incluir cualquier lógica que necesite para manejar el cierre del cuadro de diálogo, como detener el flujo del programa o salir elegante.

Comments are closed.