Cómo hacer un marco de barra de desplazamiento doble adecuado en Tkinter

Tkinter es un enlace de Python al kit de herramientas Tk GUI (interfaz gráfica de usuario). Es una capa orientada a objetos delgados encima de Tcl/Tk. Cuando se combina con Python, ayuda a crear aplicaciones GUI rápidas y eficientes.

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

Pasos para crear un marco de doble barra de desplazamiento en Tkinter

1) En primer lugar, se importará el módulo Tkinter como:

import tkinter as tk 

Entonces, tkinter se abrevia aquí como tk para que el código se vea más limpio y eficiente.

Ahora, se creará una ventana para mostrar:

import tkinter as tk 
  
  
window = tk.Tk()
window.geometry("250x200")

Producción:

Funciones a entender:

  • geometría(): este método se usa para establecer las dimensiones de la ventana de Tkinter y también se usa para establecer la posición de la ventana principal en el escritorio del usuario.

2) El siguiente código es para asignar a las barras de desplazamiento para horizontal y vertical.

SVBar = tk.Scrollbar(window)
SVBar.pack (side = tk.RIGHT,
            fill = "y")
  
SHBar = tk.Scrollbar(window, 
                     orient = tk.HORIZONTAL)
SHBar.pack (side = tk.BOTTOM, 
            fill = "x")

Producción:

Funciones a entender:

  • Scrollbar() = Es la barra de desplazamiento que se asigna a los lados de la ventana.
  • Método pack() : organiza los widgets en bloques antes de colocarlos en el widget principal.

3) Ahora, crea un cuadro de texto para la ventana:

TBox = tk.Text(window,
               height = 500,
               width = 500,
               yscrollcommand = SVBar.set,
               xscrollcommand = SHBar.set, 
               wrap = "none")
  
TBox = tk.Text(window, 
               height = 500,
               width = 500, 
               yscrollcommand = SVBar.set, 
               xscrollcommand = SHBar.set, 
               wrap = "none")
  
TBox.pack(expand = 0, fill = tk.BOTH)

Funciones a entender:

  • Text() = Es un widget de cuadro de texto de un widget estándar de Tkinter que se usa para mostrar el texto.
  • pack() = Es un administrador de geometría para organizar los widgets en bloques antes de colocarlos en el widget principal. Las opciones como relleno, expansión y lateral se utilizan en la función.
SHBar.config(command = TBox.xview)
SVBar.config(command = TBox.yview)

Aquí, dentro de los argumentos de la función config(), las barras de desplazamiento se asignan en su eje x e y específico y pueden funcionar.

Ahora, inserte una cierta cantidad de texto para mostrar:

Num_Vertical = («\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW \nX\nY\nZ»)
Num_Horizontal = («ABCDEFGHIJKLMNOPQRSTU VWXYZ»)

Para insertar el texto en la ventana para la visualización, se realiza el siguiente código:

TBox.insert(tk.END, Num_Horizontal)
TBox.insert(tk.END, Num_Vertical)

Código completo:

import tkinter as tk
   
  
Num_Vertical = ("\nA\nB\nC\nD\nE\nF\nG\n\
H\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\n\
U\nV\nW\nX\nY\nZ")
Num_Horizontal = ("A  B  C  D  E  F  G  H \
I  J  K  L  M  N  O  P  Q  R  S  T  U  V \
W  X  Y  Z")
   
window = tk.Tk()
window.geometry("250x200")
   
SVBar = tk.Scrollbar(window)
SVBar.pack (side = tk.RIGHT, 
            fill = "y")
   
SHBar = tk.Scrollbar(window, 
                     orient = tk.HORIZONTAL)
SHBar.pack (side = tk.BOTTOM, 
            fill = "x")
   
TBox = tk.Text(window, 
               height = 500, 
               width = 500,
               yscrollcommand = SVBar.set,
               xscrollcommand = SHBar.set, 
               wrap = "none")
  
TBox = tk.Text(window,
               height = 500,
               width = 500,
               yscrollcommand = SVBar.set, 
               xscrollcommand = SHBar.set, 
               wrap = "none")
  
TBox.pack(expand = 0, fill = tk.BOTH)
   
TBox.insert(tk.END, Num_Horizontal)
TBox.insert(tk.END, Num_Vertical)
   
SHBar.config(command = TBox.xview)
SVBar.config(command = TBox.yview)
   
window.mainloop()

Producción:

Publicación traducida automáticamente

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