Creación de widgets con pestañas con Python-Tkinter

Python ofrece una variedad de marcos de GUI que se pueden usar para desarrollar aplicaciones basadas en GUI en Python. La interfaz de Python más utilizada es la interfaz Tk o tkinter.(como se renombró en Python 3.x). El módulo Tkinter ofrece una amplia gama de widgets que se pueden usar para desarrollar aplicaciones GUI mucho más rápido y más fácil en comparación con las otras interfaces que ofrece Python. El módulo tkinter.ttk sirve como una mejora del módulo tk ya existente. El módulo Ttk está equipado con 18 widgets, 12 de los cuales existían en el módulo Tkinter, como Button, Checkbutton, PanedWindow, Radiobutton, Entry, Frame, Label, LabelFrame, Menubutton, Scale, Scrollbar y Spinbox. Los widgets recién agregados son Combobox, Notebook, Sizegrip, Progressbar, Separator y Treeview. En este artículo, el widget Notebook del módulo ttk se utiliza para crear un widget con pestañas. El widget ttk.Notebook administra una colección de ventanas y muestra una a la vez. Cada ventana secundaria está asociada con una pestaña.
Pasos para crear un widget con pestañas 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. Importe el módulo tkinter ttk que contiene el widget Notebook
    from tkinter import ttk
  3. Cree la ventana principal (raíz).
    root = tk.Tk()
    

    Sintaxis:

    Tk()

    Explicación:
    Se utiliza para crear la ventana principal. La clase Tk se instancia sin ningún argumento (aquí).

  4. Agregar título a la ventana principal (raíz).
    root.title("Tab Widget")

    Sintaxis:

    title(name)

    Parámetro:
    nombre: se utiliza para pasar el nombre deseado a la ventana principal (raíz).

  5. Creación de un control de pestañas
    tabControl = ttk.Notebook(root)

    Sintaxis:

    Notebook(master=None, **options)

    Parámetro:

    • maestro: ventana principal (raíz).
    • opciones: Las opciones aceptadas por el método Notebook() son alto, relleno y ancho. Las opciones no se utilizan en este programa.
  6. Creando las pestañas
    tab1 = ttk.Frame(tabControl)
    tab2 = ttk.Frame(tabControl)

    Sintaxis:

    Frame(master=None, **options)

    Parámetro:

    • maestro: tabControl es el widget principal para las pestañas.
    • opciones: Las opciones aceptadas por el método Frame() son class_, cursor, padding, relief, style, takefocus, height y width. Las opciones no se utilizan en este programa.

    Explicación:
    el widget de marco actúa como un contenedor y se usa para agrupar otros widgets. Aquí, el widget de marco se usa para agrupar los widgets de pestañas.

  7. Agregando la pestaña
    tabControl.add(tab1, text='Tab 1')
    tabControl.add(tab2, text='Tab 2')

    Sintaxis:

    add(child, **options)

    Parámetro:

    • niño: tab1 y tab2 son el widget secundario de tabControl.
    • opciones: Las opciones admitidas por el método add() son adhesivas, de estado, de relleno, de texto, de imagen, compuestas y de subrayado.

    Explicación:
    El método add() está presente en la clase tk.ttk.Notebook. Se utiliza para agregar nuevas pestañas al widget de Notebook.

  8. Empaquetar el control de pestañas para que las pestañas sean visibles
    tabControl.pack(expand=1, fill="both")

    Sintaxis:

    pack(**options)

    Parámetro:

    • expandir: la opción de expansión garantiza una distribución equitativa del espacio entre los widgets que tienen un valor de expansión distinto de cero cuando se expande el widget principal.
    • relleno: la opción de relleno garantiza que el widget ocupe el espacio que se le ha asignado. Ahora fill=”both” especifica que el widget ocupa el espacio a lo largo de los ejes X e Y, fill=”X” especifica que el widget ocupa el espacio a lo largo del eje X y fill=”Y” especifica que el widget ocupa el espacio a lo largo de Y eje.

    Explicación:
    el método pack() se usa para organizar widgets en bloques antes de colocarlos en el widget principal. Esto se puede hacer usando varias opciones como relleno, expansión y lado.

  9. Creación del widget de etiqueta como elemento secundario de la ventana principal (raíz)

    ttk.Label(tab1, text=”Bienvenido a GeeksForGeeks”).grid(column=0, row=0, padx=30, pady=30)
    ttk.Label(tab2, text=”Sumerjámonos en el mundo de las computadoras” ).grid(columna=0, fila=0, padx=30, pady=30)

    Sintaxis:

    Label(master, **options)

    Parámetro:

    • maestro: las pestañas actúan como padre para el widget de etiqueta.
    • opciones: Las opciones admitidas por el método Label() son ancla, bg, mapa de bits, bd, cursor, fuente, fg, alto, ancho, imagen, justificar, relieve, padx, pady, variable de texto, subrayado y longitud de ajuste.

    Explicación:
    el widget de etiqueta se usa para mostrar texto o imágenes en la pantalla. El texto que se muestra en la pantalla se puede formatear aún más usando las diversas opciones disponibles en el widget de etiqueta.

    Sintaxis:

    grid(**options)

    Parámetro:

    • opciones: Las opciones admitidas por el método grid() son columna, columna, fila, fila, padx, pady, ipadx, ipady y sticky.

    Explicación:
    el método grid() se usa para dividir el widget principal en filas y columnas, más específicamente una tabla 2D. Se puede utilizar para especificar la posición de los widgets en el widget principal. Aquí el método grid() especifica la posición del widget de etiqueta, es decir. básicamente la posición del texto en la ventana principal.

  10. Ejecutar la aplicación
    root.mainloop() 

    Sintaxis: mainloop()
    Explicación:
    Mainloop() actúa como un bucle infinito y se utiliza para ejecutar una aplicación.

  11. El programa completo es el siguiente:

    import tkinter as tk                    
    from tkinter import ttk
      
      
    root = tk.Tk()
    root.title("Tab Widget")
    tabControl = ttk.Notebook(root)
      
    tab1 = ttk.Frame(tabControl)
    tab2 = ttk.Frame(tabControl)
      
    tabControl.add(tab1, text ='Tab 1')
    tabControl.add(tab2, text ='Tab 2')
    tabControl.pack(expand = 1, fill ="both")
      
    ttk.Label(tab1, 
              text ="Welcome to \
              GeeksForGeeks").grid(column = 0
                                   row = 0,
                                   padx = 30,
                                   pady = 30)  
    ttk.Label(tab2,
              text ="Lets dive into the\
              world of computers").grid(column = 0,
                                        row = 0
                                        padx = 30,
                                        pady = 30)
      
    root.mainloop()  

    Producción
    python-tkinter

    python-tkinter

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 *