Interfaz gráfica de usuario de Python – tkinter

Python ofrece múltiples opciones para desarrollar GUI (interfaz gráfica de usuario). De todos los métodos GUI, tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI que se envía con Python. Python con tkinter es la forma más rápida y sencilla de crear aplicaciones GUI. Crear una GUI usando tkinter es una tarea fácil.
Para crear una aplicación tkinter:

  1. Importando el módulo – tkinter
  2. Crear la ventana principal (contenedor)
  3. Agregue cualquier cantidad de widgets a la ventana principal
  4. Aplique el evento Trigger en los widgets.

Importar tkinter es lo mismo que importar cualquier otro módulo en el código de Python. Tenga en cuenta que el nombre del módulo en Python 2.x es ‘Tkinter’ y en Python 3.x es ‘tkinter’.

import tkinter

Hay dos métodos principales utilizados que el usuario debe recordar al crear la aplicación Python con GUI.

  1. Tk(screenName=Ninguno, baseName=Ninguno, className=’Tk’, useTk=1): Para crear una ventana principal, tkinter ofrece un método ‘Tk(screenName=Ninguno, baseName=Ninguno, className=’Tk’, useTk= 1)’. Para cambiar el nombre de la ventana, puede cambiar el className al deseado. El código básico utilizado para crear la ventana principal de la aplicación es:
    m=tkinter.Tk() where m is the name of the main window object
  2. mainloop(): Hay un método conocido con el nombre mainloop() que se usa cuando su aplicación está lista para ejecutarse. mainloop() es un bucle infinito que se utiliza para ejecutar la aplicación, esperar a que ocurra un evento y procesar el evento siempre que la ventana no esté cerrada.
    m.mainloop()

    import tkinter
    m = tkinter.Tk()
    '''
    widgets are added here
    '''
    m.mainloop()

tkinter también ofrece acceso a la configuración geométrica de los widgets que pueden organizar los widgets en las ventanas principales. Hay principalmente tres clases de clases de administrador de geometría.

  1. Método pack(): organiza los widgets en bloques antes de colocarlos en el widget principal.
  2. Método grid(): organiza los widgets en cuadrícula (estructura similar a una tabla) antes de colocarlos en el widget principal.
  3. Método place(): Organiza los widgets colocándolos en posiciones específicas dirigidas por el programador.

Hay una serie de widgets que puede colocar en su aplicación tkinter. Algunos de los principales widgets se explican a continuación:

  1. Botón : para agregar un botón en su aplicación, se utiliza este widget.
    La sintaxis general es:
    w=Button(master, option=value)

    master es el parámetro utilizado para representar la ventana principal.
    Hay una serie de opciones que se utilizan para cambiar el formato de los botones. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • activebackground : para establecer el color de fondo cuando el botón está debajo del cursor.
    • activeforeground : para establecer el color de primer plano cuando el botón está debajo del cursor.
    • bg : para establecer el color de fondo normal.
    • comando : para llamar a una función.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el botón.
    • ancho : para establecer el ancho del botón.
    • altura : para establecer la altura del botón.

    import tkinter as tk
    r = tk.Tk()
    r.title('Counting Seconds')
    button = tk.Button(r, text='Stop', width=25, command=r.destroy)
    button.pack()
    r.mainloop()

    Producción:

  2. Lienzo: se utiliza para dibujar imágenes y otros diseños complejos, como gráficos, texto y widgets.
    La sintaxis general es:
    w = Canvas(master, option=value)
    master is the parameter used to represent the parent window.

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bd : para establecer el ancho del borde en píxeles.
    • bg : para establecer el color de fondo normal.
    • cursor : para establecer el cursor utilizado en el lienzo.
    • color de resaltado : para establecer el color que se muestra en el resaltado de enfoque.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
    master = Tk()
    w = Canvas(master, width=40, height=60)
    w.pack()
    canvas_height=20
    canvas_width=200
    y = int(canvas_height / 2)
    w.create_line(0, y, canvas_width, y )
    mainloop()

    Producción:

  3. Botón de verificación: para seleccionar cualquier cantidad de opciones mostrando una cantidad de opciones a un usuario como botones de alternancia. La sintaxis general es:
    w = CheckButton(master, option=value)

    Hay varias opciones que se utilizan para cambiar el formato de este widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • Título : para establecer el título del widget.
    • activebackground : para establecer el color de fondo cuando el widget está debajo del cursor.
    • activeforeground : para establecer el color de primer plano cuando el widget está debajo del cursor.
    • bg : para configurar el backgrouSteganography normal

      Romper

      Código secreto:

      Adjunte un archivo: nd color.

    • comando : para llamar a una función.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.

    from tkinter import *
    master = Tk()
    var1 = IntVar()
    Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W)
    var2 = IntVar()
    Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W)
    mainloop()

    Producción:

  4. Entrada: se usa para ingresar la entrada de texto de una sola línea del usuario. Para la entrada de texto de varias líneas, se usa el widget de texto.
    La sintaxis general es:
    w=Entry(master, option=value)
    

    master es el parámetro utilizado para representar la ventana principal.
    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bd : para establecer el ancho del borde en píxeles.
    • bg : para establecer el color de fondo normal.
    • cursor : para configurar el cursor utilizado.
    • comando : para llamar a una función.
    • color de resaltado : para establecer el color que se muestra en el resaltado de enfoque.
    • ancho : para establecer el ancho del botón.
    • altura : para establecer la altura del botón.

    from tkinter import *
    master = Tk()
    Label(master, text='First Name').grid(row=0)
    Label(master, text='Last Name').grid(row=1)
    e1 = Entry(master)
    e2 = Entry(master)
    e1.grid(row=0, column=1)
    e2.grid(row=1, column=1)
    mainloop()

    Producción:

  5. Marco: Actúa como un contenedor para contener los widgets. Se utiliza para agrupar y organizar los widgets. La sintaxis general es:
    w = Frame(master, option=value)
    master is the parameter used to represent the parent window.

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • color de resaltado : para establecer el color del resaltado de enfoque cuando se debe enfocar el widget.
    • bd : para establecer el ancho del borde en píxeles.
    • bg : para establecer el color de fondo normal.
    • cursor : para configurar el cursor utilizado.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
      
    root = Tk()
    frame = Frame(root)
    frame.pack()
    bottomframe = Frame(root)
    bottomframe.pack( side = BOTTOM )
    redbutton = Button(frame, text = 'Red', fg ='red')
    redbutton.pack( side = LEFT)
    greenbutton = Button(frame, text = 'Brown', fg='brown')
    greenbutton.pack( side = LEFT )
    bluebutton = Button(frame, text ='Blue', fg ='blue')
    bluebutton.pack( side = LEFT )
    blackbutton = Button(bottomframe, text ='Black', fg ='black')
    blackbutton.pack( side = BOTTOM)
    root.mainloop()

    Producción:

  6. Etiqueta : se refiere al cuadro de visualización donde puede colocar cualquier texto o imagen que se pueda actualizar en cualquier momento según el código.
    La sintaxis general es:
    w=Label(master, option=value)
    master is the parameter used to represent the parent window.

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bg : para establecer el color de fondo normal.
    • bg para establecer el color de fondo normal.
    • comando : para llamar a una función.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el botón.
    • ancho : para establecer el ancho del botón.
    • altura ” para establecer la altura del botón.

    from tkinter import *
    root = Tk()
    w = Label(root, text='GeeksForGeeks.org!')
    w.pack()
    root.mainloop()

    Producción:

  7. Cuadro de lista : ofrece una lista al usuario desde la cual el usuario puede aceptar cualquier cantidad de opciones.
    La sintaxis general es:
    w = Listbox(master, option=value)
    master is the parameter used to represent the parent window.

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • color de resaltado : para establecer el color del resaltado de enfoque cuando se debe enfocar el widget.
    • bg : para establecer el color de fondo normal.
    • bd : para establecer el ancho del borde en píxeles.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
      
    top = Tk()
    Lb = Listbox(top)
    Lb.insert(1, 'Python')
    Lb.insert(2, 'Java')
    Lb.insert(3, 'C++')
    Lb.insert(4, 'Any other')
    Lb.pack()
    top.mainloop()

    Producción:

  8. MenuButton : Es una parte del menú de arriba hacia abajo que permanece en la ventana todo el tiempo. Cada botón de menú tiene su propia funcionalidad. La sintaxis general es:
    w = MenuButton(master, option=value)
    master is the parameter used to represent the parent window.

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • fondo activo : para configurar el fondo cuando el mouse está sobre el widget.
    • activeforeground : para establecer el primer plano cuando el mouse está sobre el widget.
    • bg : para establecer el color de fondo normal.
    • bd : para establecer el tamaño del borde alrededor del indicador.
    • cursor : Para que aparezca el cursor cuando se coloca el mouse sobre el botón del menú.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.
    • color de resaltado : para establecer el color del resaltado de enfoque cuando se debe enfocar el widget.

    from tkinter import *
      
    top = Tk()
    mb =  Menubutton ( top, text = "GfG")
    mb.grid()
    mb.menu  =  Menu ( mb, tearoff = 0 )
    mb["menu"]  =  mb.menu
    cVar  = IntVar()
    aVar = IntVar()
    mb.menu.add_checkbutton ( label ='Contact', variable = cVar )
    mb.menu.add_checkbutton ( label = 'About', variable = aVar )
    mb.pack()
    top.mainloop()

    Producción:

  9. Menú : Sirve para crear todo tipo de menús que utiliza la aplicación.
    La sintaxis general es:
    w = Menu(master, option=value)
    master is the parameter used to represent the parent window.

    Hay varias opciones que se utilizan para cambiar el formato de este widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • title : Para establecer el título del widget.
    • activebackground : para establecer el color de fondo cuando el widget está debajo del cursor.
    • activeforeground : para establecer el color de primer plano cuando el widget está debajo del cursor.
    • bg : para establecer el color de fondo normal.
    • comando : para llamar a una función.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.

    from tkinter import *
          
    root = Tk()
    menu = Menu(root)
    root.config(menu=menu)
    filemenu = Menu(menu)
    menu.add_cascade(label='File', menu=filemenu)
    filemenu.add_command(label='New')
    filemenu.add_command(label='Open...')
    filemenu.add_separator()
    filemenu.add_command(label='Exit', command=root.quit)
    helpmenu = Menu(menu)
    menu.add_cascade(label='Help', menu=helpmenu)
    helpmenu.add_command(label='About')
    mainloop()

    Producción:

  10. Mensaje : Se refiere al texto de varias líneas y no editable. Funciona igual que el de Label.
    La sintaxis general es:
    w = Message(master, option=value)
    master is the parameter used to represent the parent window.
    

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bd : para establecer el borde alrededor del indicador.
    • bg : para establecer el color de fondo normal.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
    main = Tk()
    ourMessage ='This is our Message'
    messageVar = Message(main, text = ourMessage)
    messageVar.config(bg='lightgreen')
    messageVar.pack( )
    main.mainloop( )

    Producción:

  11. RadioButton: Se utiliza para ofrecer la opción de opción múltiple al usuario. Ofrece varias opciones al usuario y el usuario tiene que elegir una opción.
    La sintaxis general es:
    w = RadioButton(master, option=value)
    

    Hay varias opciones que se utilizan para cambiar el formato de este widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • activebackground : para establecer el color de fondo cuando el widget está debajo del cursor.
    • activeforeground : para establecer el color de primer plano cuando el widget está debajo del cursor.
    • bg : para establecer el color de fondo normal.
    • comando : para llamar a una función.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho de la etiqueta en caracteres.
    • altura : para establecer la altura de la etiqueta en caracteres.

    from tkinter import *
    root = Tk()
    v = IntVar()
    Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W)
    Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W)
    mainloop()

    Producción:

  12. Escala: se utiliza para proporcionar un control deslizante gráfico que permite seleccionar cualquier valor de esa escala. La sintaxis general es:
    w = Scale(master, option=value)
    master is the parameter used to represent the parent window.
    

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • cursor : Para cambiar el patrón del cursor cuando el mouse está sobre el widget.
    • fondo activo : para establecer el fondo del widget cuando el mouse está sobre el widget.
    • bg : para establecer el color de fondo normal.
    • orient : Establézcalo en HORIZONTAL o VERTICAL según el requisito.
    • from_ : Para establecer el valor de un extremo del rango de escala.
    • a : Para establecer el valor del otro extremo del rango de escala.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho del widget.

    from tkinter import *
    master = Tk()
    w = Scale(master, from_=0, to=42)
    w.pack()
    w = Scale(master, from_=0, to=200, orient=HORIZONTAL)
    w.pack()
    mainloop()

    Producción:

  13. Barra de desplazamiento : se refiere al controlador deslizante que se utilizará para implementar los widgets enumerados.
    La sintaxis general es:
    w = Scrollbar(master, option=value)
    master is the parameter used to represent the parent window.
    

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • ancho : para establecer el ancho del widget.
    • fondo activo : para configurar el fondo cuando el mouse está sobre el widget.
    • bg : para establecer el color de fondo normal.
    • bd : para establecer el tamaño del borde alrededor del indicador.
    • cursor : Para que aparezca el cursor cuando se coloca el mouse sobre el botón del menú.

    from tkinter import *
    root = Tk()
    scrollbar = Scrollbar(root)
    scrollbar.pack( side = RIGHT, fill = Y )
    mylist = Listbox(root, yscrollcommand = scrollbar.set )
    for line in range(100):
       mylist.insert(END, 'This is line number' + str(line))
    mylist.pack( side = LEFT, fill = BOTH )
    scrollbar.config( command = mylist.yview )
    mainloop()

    Producción:

  14. Texto: para editar un texto de varias líneas y darle formato de la forma en que debe mostrarse.
    La sintaxis general es:
    w  =Text(master, option=value)
    

    Hay una serie de opciones que se utilizan para cambiar el formato del texto. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • color de resaltado : para establecer el color del resaltado de enfoque cuando se debe enfocar el widget.
    • insertbackground : para establecer el fondo del widget.
    • bg : para establecer el color de fondo normal.
    • font : para establecer la fuente en la etiqueta del botón.
    • imagen : para establecer la imagen en el widget.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
    root = Tk()
    T = Text(root, height=2, width=30)
    T.pack()
    T.insert(END, 'GeeksforGeeks\nBEST WEBSITE\n')
    mainloop()

    Producción:

  15. TopLevel: este widget está controlado directamente por el administrador de ventanas. No necesita ninguna ventana principal para funcionar. La sintaxis general es:
    w = TopLevel(master, option=value)
    

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bg : para establecer el color de fondo normal.
    • bd : para establecer el tamaño del borde alrededor del indicador.
    • cursor : Para que aparezca el cursor cuando se coloca el mouse sobre el botón del menú.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
    root = Tk()
    root.title('GfG')
    top = Toplevel()
    top.title('Python')
    top.mainloop()

    Producción:

  16. SpinBox: Es una entrada del widget ‘Entrada’. Aquí, el valor se puede ingresar seleccionando un valor fijo de números. La sintaxis general es:
    w = SpinBox(master, option=value)
    

    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bg : para establecer el color de fondo normal.
    • bd : para establecer el tamaño del borde alrededor del indicador.
    • cursor : Para que aparezca el cursor cuando se coloca el mouse sobre el botón del menú.
    • comando : Para llamar a una función.
    • ancho : para establecer el ancho del widget.
    • fondo activo : para configurar el fondo cuando el mouse está sobre el widget.
    • disabledbackground : para deshabilitar el fondo cuando el mouse está sobre el widget.
    • from_ : Para establecer el valor de un extremo del rango.
    • a : Para establecer el valor del otro extremo del rango.

    from tkinter import *
    master = Tk()
    w = Spinbox(master, from_ = 0, to = 10)
    w.pack()
    mainloop()

    Producción:

  17. PannedWindow Es un widget de contenedor que se usa para manejar la cantidad de paneles dispuestos en él. La sintaxis general es:
    w = PannedWindow(master, option=value)
    

    master es el parámetro utilizado para representar la ventana principal.
    Hay una serie de opciones que se utilizan para cambiar el formato del widget. El número de opciones se puede pasar como parámetros separados por comas. Algunos de ellos se enumeran a continuación.

    • bg : para establecer el color de fondo normal.
    • bd : para establecer el tamaño del borde alrededor del indicador.
    • cursor : Para que aparezca el cursor cuando se coloca el mouse sobre el botón del menú.
    • ancho : para establecer el ancho del widget.
    • altura : para establecer la altura del widget.

    from tkinter import *
    m1 = PanedWindow()
    m1.pack(fill = BOTH, expand = 1)
    left = Entry(m1, bd = 5)
    m1.add(left)
    m2 = PanedWindow(m1, orient = VERTICAL)
    m1.add(m2)
    top = Scale( m2, orient = HORIZONTAL)
    m2.add(top)
    mainloop()

    Producción:

Este artículo es una contribución de Rishabh Bansal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *