Cree un cuadro de mensaje Sí/No en Python usando tkinter

Python ofrece un marco de interfaz gráfica de usuario (GUI) número, pero la interfaz Tk o tkinter es el marco más utilizado. Es multiplataforma, lo que permite ejecutar el mismo código independientemente de la plataforma del sistema operativo (Windows, Linux o macOS). Tkinter es ligero, rápido y fácil de usar. Tkinter proporciona una variedad de widgets que se pueden personalizar utilizando atributos estándar y métodos de gestión de geometría. El cuadro de mensaje de Tkinter se puede utilizar para hacer preguntas o mostrar mensajes al usuario.

Nota: Para obtener más información, consulte Python GUI – tkinter

Pasos para crear un cuadro de mensaje tkinter:

  1. Importar módulo tkinter
    import tkinter as tk
    from tkinter import *

    Nota: El nombre del módulo en Python 2.x es ‘Tkinter’ y en Python 3.x es ‘tkinter’. Python 3.x se usa aquí.

  2. Importar widget de cuadro de mensaje tkinter
    from tkinter import messagebox as mb
  3. Cree el método que se llama para mostrar el cuadro de mensaje Sí/No
    def call():
        res=mb.askquestion('Exit Application', 'Do you really want to exit')
        if res == 'yes' :
            root.destroy()
        else :
            mb.showinfo('Return', 'Returning to main application')
    

    Explicación:
    Sintaxis:

    askquestion(title=None, message=None, **options) 

    Parámetro

    • título: se utiliza para dar un nombre que se muestra como encabezado del cuadro de diálogo.
    • mensaje: pregunta para el usuario.

    Valor devuelto: Devuelve ‘sí’ cuando se hace clic en la opción sí y ‘no’ cuando se hace clic en la opción no.

    Sintaxis:

    showinfo(title=None, message=None, **options)

    Parámetro

    • título: se utiliza para dar un nombre que se muestra como encabezado del cuadro de diálogo.
    • mensaje: información para el usuario.

    Sintaxis:

    destroy() 

    Este método destruye un widget.

  4. Cree el lienzo para que se coloque el botón.
    root=tk.Tk()
    canvas=tk.Canvas(root, width=200, height=200)
    canvas.pack()
    

    Explicación:
    Sintaxis:

    Tk(screenName=None,  baseName=None,  className=’Tk’,  useTk=1)

    Se utiliza para crear la ventana principal. La clase Tk se instancia sin ningún argumento. El nombre de la ventana principal se puede cambiar al deseado cambiando el valor del argumento className. Aquí ‘raíz’ es la ventana principal.

    Sintaxis:

    Canvas(master, option=value)

    Parámetro:

    • maestro: se usa para representar la ventana principal. Aquí ‘raíz’ es el maestro.
    • opción: se utiliza para especificar el borde, el color de fondo, la altura, el ancho, etc.

    Valor devuelto: el método devuelve una string (.!canvas) .

    Sintaxis:

    pack(**options) 

    Organiza los widgets en bloques antes de colocarlos en el widget principal. Las opciones se pueden usar para expandir, rellenar y especificar el lado (izquierda, derecha, arriba, abajo)

  5. Crea el botón y colócalo dentro del lienzo.
    b=Button(root, text='Quit Application', command=call)
    canvas.create_window(100, 100, window=b)
    

    Explicación:
    Sintaxis:

    Button(master=None, options)

    Parámetro:

    • maestro: aquí raíz es la ventana principal.
    • opciones: Hay una serie de opciones admitidas. Las opciones utilizadas en este caso son texto y comando.
      • texto: texto del botón
      • comando: la acción o el método que se invocará cuando se presione el botón.

    Valor devuelto: el método devuelve una string (.!button) .

    Sintaxis:

    create_window(x, y, **options)

    Parámetro:

    • x, y: especifica la posición del widget (botón) dentro del lienzo.
    • opciones: Hay una variedad de opciones admitidas como ancla, altura, ancho, estado, etiquetas, ventana. La opción utilizada aquí es ventana.
      • ventana: ventana = b donde b es el widget (botón) que se colocará en el lienzo.

    Valor devuelto: Devuelve el ID de objeto para el objeto de ventana.

  6. Llamar al método mainloop()
    root.mainloop()
    

    Explicación:
    Sintaxis:

    mainloop()

    Es un ciclo infinito que se llama cuando el programa está listo para ejecutarse. Espera a que ocurra un evento (clics del mouse) y, tan pronto como se recibe el evento, se procesa. Mainloop() se ejecuta mientras la ventana principal no se destruye.

El programa completo es el siguiente:

# Python program to create 
# yes/no message box
  
  
import tkinter as tk
from tkinter import * 
from tkinter import messagebox as mb
  
  
def call():
    res = mb.askquestion('Exit Application', 
                         'Do you really want to exit')
      
    if res == 'yes' :
        root.destroy()
          
    else :
        mb.showinfo('Return', 'Returning to main application')
  
# Driver's code
root = tk.Tk()
canvas = tk.Canvas(root, 
                   width = 200, 
                   height = 200)
  
canvas.pack()
b = Button(root,
           text ='Quit Application',
           command = call)
  
canvas.create_window(100, 100, 
                     window = b)
  
root.mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *