Python: barra de desplazamiento de Tkinter

Este widget proporciona un controlador deslizante que se utiliza para implementar widgets de desplazamiento vertical, como Listbox, Text y Canvas. Tenga en cuenta que también puede crear barras de desplazamiento horizontales en los widgets de entrada.

Sintaxis

Aquí está la sintaxis simple para crear este widget:

w = Scrollbar ( master, option, ... )

Parámetros

  • master - Esto representa la ventana principal.

  • options- Aquí está la lista de opciones más utilizadas para este widget. Estas opciones se pueden utilizar como pares clave-valor separados por comas.

No Señor. Opción y descripción
1

activebackground

El color del control deslizante y las puntas de flecha cuando el mouse está sobre ellos.

2

bg

El color del control deslizante y las puntas de flecha cuando el mouse no está sobre ellos.

3

bd

El ancho de los bordes 3-d alrededor de todo el perímetro del canal, y también el ancho de los efectos 3-d en las puntas de flecha y el control deslizante. El valor predeterminado es sin borde alrededor del canal y un borde de 2 píxeles alrededor de las puntas de flecha y el control deslizante.

4

command

Un procedimiento que se llamará siempre que se mueva la barra de desplazamiento.

5

cursor

El cursor que aparece cuando el mouse está sobre la barra de desplazamiento.

6

elementborderwidth

El ancho de los bordes alrededor de las puntas de flecha y el control deslizante. El valor predeterminado es elementborderwidth = -1, lo que significa usar el valor de la opción borderwidth.

7

highlightbackground

El color del resaltado del foco cuando la barra de desplazamiento no tiene foco.

8

highlightcolor

El color del resaltado del foco cuando la barra de desplazamiento tiene el foco.

9

highlightthickness

El grosor del resaltado de enfoque. El valor predeterminado es 1. Configure en 0 para suprimir la visualización del resaltado de enfoque.

10

jump

Esta opción controla lo que sucede cuando un usuario arrastra el control deslizante. Normalmente (salto = 0), cada pequeño arrastre del control deslizante hace que se llame al comando callback. Si establece esta opción en 1, la devolución de llamada no se llama hasta que el usuario suelta el botón del mouse.

11

orient

Establezca orient = HORIZONTAL para una barra de desplazamiento horizontal, orient = VERTICAL para una vertical.

12

repeatdelay

Esta opción controla cuánto tiempo se debe mantener presionado el botón 1 en el canal antes de que el control deslizante comience a moverse en esa dirección repetidamente. El valor predeterminado es repeatdelay = 300 y las unidades son milisegundos.

13

repeatinterval

Intervalo de repetición

14

takefocus

Normalmente, puede tabular el foco a través de un widget de barra de desplazamiento. Establezca takefocus = 0 si no desea este comportamiento.

15

troughcolor

El color del comedero.

dieciséis

width

Ancho de la barra de desplazamiento (su dimensión y si es horizontal y su dimensión x si es vertical). El valor predeterminado es 16.

Métodos

Los objetos de la barra de desplazamiento tienen estos métodos:

No Señor. Método y descripción
1

get()

Devuelve dos números (a, b) que describen la posición actual del control deslizante. El valor a da la posición del borde izquierdo o superior del control deslizante, para las barras de desplazamiento horizontal y vertical respectivamente; el valor b da la posición del borde derecho o inferior.

2

set ( first, last )

Para conectar una barra de desplazamiento a otro widget w, configure el comando xscrollcommand o yscrollcommand de w en el método set () de la barra de desplazamiento. Los argumentos tienen el mismo significado que los valores devueltos por el método get ().

Ejemplo

Pruebe el siguiente ejemplo usted mismo:

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()

Cuando se ejecuta el código anterior, produce el siguiente resultado: