Python 3 - Barra di scorrimento di Tkinter

Questo widget fornisce un controller di scorrimento che viene utilizzato per implementare widget a scorrimento verticale, come Listbox, Text e Canvas. Nota che puoi anche creare barre di scorrimento orizzontali sui widget Entry.

Sintassi

Ecco la semplice sintassi per creare questo widget:

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

Parametri

  • master - Questo rappresenta la finestra principale.

  • options- Ecco l'elenco delle opzioni più comunemente utilizzate per questo widget. Queste opzioni possono essere utilizzate come coppie chiave-valore separate da virgole.

Sr.No.Opzione e descrizione
1

activebackground

Il colore del cursore e delle punte della freccia quando il mouse è sopra di essi.

2

bg

Il colore del cursore e delle punte della freccia quando il mouse non è sopra di essi.

3

bd

La larghezza dei bordi 3-d attorno all'intero perimetro della depressione e anche la larghezza degli effetti 3-d sulle punte delle frecce e sul cursore. L'impostazione predefinita è nessun bordo attorno al trogolo e un bordo di 2 pixel attorno alle punte delle frecce e al cursore.

4

command

Una procedura da chiamare ogni volta che si sposta la barra di scorrimento.

5

cursor

Il cursore che appare quando il mouse si trova sulla barra di scorrimento.

6

elementborderwidth

La larghezza dei bordi attorno alle punte delle frecce e al cursore. L'impostazione predefinita è elementborderwidth = -1, che significa utilizzare il valore dell'opzione borderwidth.

7

highlightbackground

Il colore dell'evidenziazione dello stato attivo quando la barra di scorrimento non è attiva.

8

highlightcolor

Il colore dell'evidenziazione dello stato attivo quando la barra di scorrimento ha lo stato attivo.

9

highlightthickness

Lo spessore dell'evidenziazione del fuoco. L'impostazione predefinita è 1. Impostare su 0 per sopprimere la visualizzazione dell'evidenziazione del fuoco.

10

jump

Questa opzione controlla cosa succede quando un utente trascina il cursore. Normalmente (jump = 0), ogni piccolo trascinamento del cursore fa chiamare il comando callback. Se si imposta questa opzione su 1, la richiamata non viene chiamata finché l'utente non rilascia il pulsante del mouse.

11

orient

Impostare orient = HORIZONTAL per una barra di scorrimento orizzontale, orient = VERTICAL per una verticale.

12

repeatdelay

Questa opzione controlla per quanto tempo il pulsante 1 deve essere tenuto premuto nel canale prima che il cursore inizi a muoversi ripetutamente in quella direzione. Il valore predefinito è repeatdelay = 300 e le unità sono millisecondi.

13

repeatinterval

repeatinterval

14

takefocus

Normalmente, puoi selezionare il focus tramite un widget della barra di scorrimento. Imposta takefocus = 0 se non vuoi questo comportamento.

15

troughcolor

Il colore della depressione.

16

width

Larghezza della barra di scorrimento (la sua dimensione y se orizzontale e la sua dimensione x se verticale). L'impostazione predefinita è 16.

Metodi

Gli oggetti della barra di scorrimento hanno questi metodi:

Sr.No.Metodo e descrizione
1

get()

Restituisce due numeri (a, b) che descrivono la posizione corrente del cursore. Il valore a fornisce la posizione del bordo sinistro o superiore del cursore, rispettivamente per le barre di scorrimento orizzontale e verticale; il valore b fornisce la posizione del bordo destro o inferiore.

2

set ( first, last )

Per connettere una barra di scorrimento a un altro widget w, impostare xscrollcommand o yscrollcommand di w sul metodo set () della barra di scorrimento. Gli argomenti hanno lo stesso significato dei valori restituiti dal metodo get ().

Esempio

Prova tu stesso il seguente esempio:

# !/usr/bin/python3
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()

Risultato

Quando il codice sopra viene eseguito, produce il seguente risultato: