Ocultar automáticamente las barras de desplazamiento usando Python-tkinter

Antes de pasar al tema, veamos qué es Python Tkinter . Entonces, todos sabemos que Python tiene diferentes opciones para crear GUI(s) y tkinter es una de ellas. Es la biblioteca GUI estándar para Python. Y hace que la creación de aplicaciones GUI sea muy rápida y simple cuando se fusiona con Python. También brinda una interfaz orientada a objetos muy efectiva para el kit de herramientas Tk GUI.

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

Widgets en tkinter

Además, Tkinter habilita una serie de controles como etiquetas, cuadros de texto, cuadros de lista, botones, barras de desplazamiento, etc., que se utilizan en aplicaciones GUI. Estos controles se conocen como widgets .

Métodos de gestión de geometría de tkinter.

Estos métodos se utilizan para organizar widgets en el área de widgets principales. Además, todos los widgets de tkinter pueden acceder a estos métodos. Hay tres métodos de gestión de geometría, a saber , pack() , grid() y place() . Todos estos métodos tienen diferentes roles.
Ahora, hablemos sobre el tema Ocultar automáticamente las barras de desplazamiento usando Python-tkinter.
En este tema, veremos cómo se crean las barras de desplazamiento de ocultación automática usando tkinter en Python. Entonces, en primer lugar, veamos el significado de ocultar automáticamente las barras de desplazamiento a continuación:

Barras de desplazamiento de ocultación automática

Cuando una barra de desplazamiento se oculta si no es necesaria, es decir, no está visible cuando no es necesaria, ese tipo de barra de desplazamiento se conoce como barra de desplazamiento de ocultación automática . En Python , las barras de desplazamiento de ocultación automática se pueden usar con los widgets Listbox y Text . Se puede implementar utilizando python tkinter con la ayuda de algunos métodos de gestión de geometría.
Los siguientes ejemplos ilustran el uso de barras de desplazamiento de ocultación automática con Python-tkinter :
Ejemplo 1:

# Python program to illustrate the usage of 
# autohiding scrollbars using tkinter
   
# Importing tkinter
from tkinter import *
   
# Creating class AutoScrollbar
class AutoScrollbar(Scrollbar):
       
    # Defining set method with all 
    # its parameter
    def set(self, low, high):
           
        if float(low) <= 0.0 and float(high) >= 1.0:
               
            # Using grid_remove
            self.tk.call("grid", "remove", self)
        else:
            self.grid()
        Scrollbar.set(self, low, high)
       
    # Defining pack method
    def pack(self, **kw):
           
        # If pack is used it throws an error
        raise (TclError,"pack cannot be used with \
        this widget")
       
    # Defining place method
    def place(self, **kw):
           
        # If place is used it throws an error
        raise (TclError, "place cannot be used  with \
        this widget")
  
# creating tkinter window 
root = Tk()
   
# Defining vertical scrollbar
verscrollbar = AutoScrollbar(root)
   
# Calling grid method with all its
# parameter w.r.t vertical scrollbar
verscrollbar.grid(row=0, column=1, 
                  sticky=N+S)
   
# Defining horizontal scrollbar
horiscrollbar = AutoScrollbar(root, 
                              orient=HORIZONTAL)
   
# Calling grid method with all its 
# parameter w.r.t horizontal scrollbar
horiscrollbar.grid(row=1, column=0, 
                   sticky=E+W)
   
# Creating scrolled canvas
canvas = Canvas(root,
                yscrollcommand=verscrollbar.set,
                xscrollcommand=horiscrollbar.set)
  
canvas.grid(row=0, column=0, sticky=N+S+E+W)
   
verscrollbar.config(command=canvas.yview)
horiscrollbar.config(command=canvas.xview)
   
# Making the canvas expandable
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
   
# creating canvas contents
frame = Frame(canvas)
frame.rowconfigure(1, weight=1)
frame.columnconfigure(1, weight=1)
   
# Defining number of rows and columns
rows = 20
for i in range(1,rows):
    for j in range(1,9):
        button = Button(frame, padx=8, pady=8, 
                        text="[%d,%d]" % (i,j))
        button.grid(row=i, column=j, sticky='news')
  
# Creating canvas window
canvas.create_window(0, 0, anchor=NW, window=frame)
   
# Calling update_idletasks method
frame.update_idletasks()
   
# Configuring canvas
canvas.config(scrollregion=canvas.bbox("all"))
   
# Calling mainloop method
root.mainloop()

Producción:

Publicación traducida automáticamente

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