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