Python - Tkinter Listbox


Vidžet Listbox se koristi za prikaz stavki liste korisniku. Možemo postaviti samo tekstualne stavke u Listbox i sve tekstualne stavke sadrže isti font i boju. Korisnik može izabrati jednu ili više stavki sa liste u zavisnosti od konfiguracije. Sintaksa za korištenje Listboxa je:

w = Listbox(parent, options)

Spisak mogućih opcija je dat u sljedećoj tabeli.

Opcija Opis
bg Boja pozadine widgeta.
bd Predstavlja veličinu border-a. Zadana vrijednost je 2px.
cursor Pokazivač miša će izgledati kao tip kursora, tačke, strelica itd.
font Tip fonta stavki Listboxa.
fg Boja teksta.
height Predstavlja broj redova prikazanih u Listbox-u. Zadana vrijednost je 10px.
highlightcolor Boja stavki Listboxa kada je widget u fokusu.
highlightthickness Debljina isticanja.
relief Vrsta border-a. Zadana postavka je SUNKEN.
selectbackground Boja pozadine koja se koristi za prikaz odabranog teksta.
selectmode Koristi se za određivanje broja stavki koje se mogu odabrati sa liste. Može se postaviti na: BROWSE, SINGLE, MULTIPLE, EXTENDED.
width Predstavlja širinu widgeta u znakovima.
xscrollcommand Koristi se da omogući korisniku da horizontalno skroluje Listbox.
yscrollcommand Koristi se da omogući korisniku da vertikalno skroluje Listbox


Metode

Sljedeća tabela daje metode koje su povezane sa Listbox-om.

Metod Opis
activate(index) Koristi se za odabir linija u navedenom indeksu.
curselection() Vraća tuple koji sadrži brojeve linija odabranog elementa ili elemenata, računajući od 0. Ako ništa nije odabrano, vraća prazan tuple.
delete(first, last = None) Koristi se za brisanje linija koje postoje u datom rasponu.
get(first, last = None) Koristi se za dobijanje stavki liste koje postoje u datom opsegu.
index(i) Koristi se za postavljanje linije sa navedenim indeksom na vrh widgeta.
insert(index, *elements) Koristi se za umetanje novih redova sa određenim brojem elemenata ispred navedenog indeksa.
nearest(y) Vraća indeks najbliže linije na y koordinatu vidžeta Listbox.
see(index) Koristi se za podešavanje pozicije liste kako bi redovi specifikovani indeksom bili vidljivi.
size() Vraća broj redova koji su prisutni u widgetu Listbox.
xview() Koristi se da se vidžet može horizontalno pomjerati.
xview_moveto(fraction) Koristi se za horizontalno pomjeranje liste, liste za dio širine najduže linije prisutne u Listbox.
xview_scroll(number, what) Koristi se da bi Listbox mogao horizontalno pomicati prema broju specifikovanih znakova.
yview() Omogućava vertikalno pomicanje Listbox-a.
yview_moveto(fraction) Koristi se za vertikalno pomjeranje liste, liste za dio širine najduže linije prisutne u Listbox.
yview_scroll (number, what) Koristi se da bi Listbox mogao da se pojmera okomito prema broju specifikovanih znakova.

Primjer broj 1: Tkinter Listbox

# !/usr/bin/python3  
  
from tkinter import *  
  
top = Tk()   
top.geometry("200x250")  
  
lbl = Label(top,text = "Lista omiljenih zemalja...")  
listbox = Listbox(top)  

listbox.insert(1,"Njemačka")  
listbox.insert(2, "Francuska")  
listbox.insert(3, "Belgija")  
listbox.insert(4, "Holandija")  
  
lbl.pack()  
listbox.pack()  
  
top.mainloop()  

Prikaz koda iz gornjeg primjera izgledaće ovako:




Primjer broj 2: Tkinter Listbox

# !/usr/bin/python3  
 
from tkinter import *
  
top = Tk()
top.geometry("200x250")
  
lbl = Label(top,text = "Lista omiljenih zemalja...")
  
listbox = Listbox(top)
  
listbox.insert(1,"Njemačka")
listbox.insert(2, "Francuska")
listbox.insert(3, "Belgija")
listbox.insert(4, "Holandija")  
  
# Dugme će izbrisati izabranu stavku sa liste 
btn = Button(top, text = "Obriši", command = lambda listbox=listbox: listbox.delete(ANCHOR)) 
  
lbl.pack()
listbox.pack()
  
btn.pack()
top.mainloop()

Prikaz koda iz gornjeg primjera izgledaće ovako: