Na početku rada sa sustavom Ubuntu 20.04, ažuriramo naš sustav pomoću nekih naredbi u ljusci terminala. Pokrećemo terminalsku aplikaciju pomoću Ctrl+Alt+T i dodajemo prikladnu uputu za 'ažuriranje'. Izvršenje zahtijeva lozinku prijavljenog korisnika i ažurira cijeli sustav nakon dodavanja lozinke.
Nakon uspješne instalacije python3, trebate instalirati uslužni program Python tk da biste koristili njegove različite widgete u kodu. Za instalaciju isprobajte sljedeću naredbu u području upita terminala:
Instalacija ovog uslužnog programa zahtijeva vašu potvrdu prije samog dovršetka. Pritisnite 'y' nakon postavljanja sljedećeg pitanja:
Nakon cijele instalacije ovog uslužnog programa, dobivamo sljedeći dijaloški okvir za 'tk' widget na zaslonu terminala. Ima dva gumba – jedan za odustajanje i jedan za samo jedan klik.
Kontinuiranim klikom na 'Klikni me!' gumb, dobivamo uglate zagrade oko teksta koji sadrži. Zaslon za dijalog 'Tk' postaje veći u širinu. Nakon dodira na 'Quit
gumb, tk dijalog se zatvara s bilo kojim problemom.
Primjer 1:
Počinjemo s našim prvim Python primjerom kako bismo prikazali korištenje Tkinter Listboxa u programu. Za to stvaramo novu Python datoteku i uvozimo sve povezane funkcije biblioteke 'Tkinter'. GUI objekt “t” kreiran je u kodu pomoću funkcije “Tk()”. Omogućuje nam stvaranje glavnog GUI prozora na našem zaslonu. Funkcija geometry() poziva se korištenjem objekta 't' Tkinter-a za stvaranje zaslona određene veličine.
Sada stvaramo oznaku widgeta 'l' vrste teksta na Tkinter GUI zaslonu s nekim tekstom za označavanje widgeta. Nakon toga stvaramo widget Listbox koristeći objekt 't' u parametrima funkcije 'Listbox'. Funkcija insert() koja koristi widget Listbox poziva se za dodavanje 5 novih vrijednosti niza u Listbox s navedenim numeriranjem radi stvaranja narudžbe.
Oznaka 'l' se nakon toga pakira pomoću funkcije pack(). Listbox je prepun. Funkcija mainloop() poziva se korištenjem “t” objekta Tkinter-a za stvaranje osnovne petlje događaja koje kreira korisnik. Ovako se Listbox koristi u Pythonu preko Tkinter modula. Program je sada dovršen i spreman za korištenje. Spremimo ga u datoteku i zatvorimo ga.
#!/usr/bin/python3iz tkinter importa *
t = Tk ( )
t.geometrija ( '200x250' )
l = oznaka ( t, tekst = 'Moje omiljene boje...' )
listbox = Listbox ( t )
popisni okvir.umetnuti ( 1 , 'Bijelo' )
popisni okvir.umetnuti ( dva , 'Crno' )
popisni okvir.umetnuti ( 3 , 'Crvena' )
popisni okvir.umetnuti ( 4 , 'plava' )
popisni okvir.umetnuti ( 5 , 'Žuta boja' )
l.pakirati ( )
listbox.pack ( )
t.glavna petlja ( )
Nakon zatvaranja datoteke ponovno pokrećemo terminal i ispisujemo sadržaj glavnog direktorija putem instrukcije “ls”. Pokazuje da je tu i nedavno ažurirana Python datoteka. Koristimo python3 za izvršavanje Python datoteke.
Nakon izvršenja, sljedeći GUI zaslon Tkinter-a otvara se na našem zaslonu s naslovom “tk”. Unutar sivo obojenog područja možete vidjeti označeni tekst. U bijelom području možete vidjeti stavke Listbox-a, tj. stavke dodane u Listbox pomoću objekta Listbox. Zaslon GUI Tkinter možete zatvoriti pomoću crvenog znaka križića u krajnjem desnom kutu.
Primjer 2:
Pogledajmo korištenje Listboxa zajedno s nekim drugim widgetima kako bismo ga učinili pomalo interaktivnim. Ista Python skripta koristi se u istoj kodnoj datoteci s manjim izmjenama u nekim redcima. Dodajemo novi red koda u retku broj 12 ovog koda. Kreiramo gumb 'b' na Tkinter GUI zaslonu koristeći funkciju 'Button' uzimajući tekst 'Delete' kao oznaku gumba i Tkinter objekt 't'.
Treći parametar funkcije Button() sadrži naredbu brisanja za Listbox stavke pomoću ANCHOR-a, tj. odabir stavke i brisanje pomoću gumba. Oznaka, popisni okvir i gumb su pakirani. Glavna petlja događaja stvorena je za izvođenje ovog GUI-ja.
#!/usr/bin/python3iz tkinter importa *
t = Tk ( )
t.geometrija ( '200x250' )
l = oznaka ( t, tekst = 'Moje omiljene boje...' )
listbox = Listbox ( t )
popisni okvir.umetnuti ( 1 , 'Bijelo' )
popisni okvir.umetnuti ( dva , 'Crno' )
popisni okvir.umetnuti ( 3 , 'Crvena' )
popisni okvir.umetnuti ( 4 , 'plava' )
popisni okvir.umetnuti ( 5 , 'Žuta boja' )
b = Gumb ( t, tekst = 'Izbrisati' , naredba = lambda popisni okvir =listbox: listbox.delete ( SIDRO ) )
l.pakirati ( )
listbox.pack ( )
b. pakirati
t.glavna petlja ( )
Istu datoteku izvršavamo nakon spremanja.
Ispis prikazuje okvir s popisom od 5 stavki zajedno s gumbom 'Izbriši'.
Odaberemo stavku 'Plavi' popisni okvir i pritisnemo gumb 'Izbriši'.
Odabrana stavka se briše iz okvira s popisom.
Sada ažuriramo isti kôd kako bismo dodali dodatnu funkcionalnost. Dakle, u 3. retku ažuriramo veličinu GUI prozora. U 5. retku koda dodajemo definiciju za funkciju 'showSelected()'. Ova funkcija poziva funkciju config() pomoću sljedećeg objekta za dobivanje teksta odabrane stavke iz okvira s popisom “Lbx”. U retku 15, gumb poziva funkciju showSelected() u svom parametru naredbe.
#!/usr/bin/python3iz tkinter importa *
t = Tk ( )
t.geometrija ( '400x300' )
def prikaži Odabrano ( ) :
show.config ( tekst =Lbx.get ( SIDRO ) )
l = oznaka ( t, tekst = 'Moje omiljene boje...' )
Lbx = Popisni okvir ( t )
Lbx.pack ( )
Lbx.umetnuti ( 1 , 'Bijelo' )
Lbx.umetnuti ( dva , 'Crno' )
Lbx.umetnuti ( 3 , 'Crvena' )
Lbx.umetnuti ( 4 , 'plava' )
Lbx.umetnuti ( 5 , 'Žuta boja' )
Dugme ( t, tekst = 'Prikaži odabrano', commnd=showSelected).pack()
prikaži = Oznaka(t)
pokazati.pakirati
t.mainloop()
Izvršavamo ažurirani kod.
Stvoren je sljedeći zaslon okvira s popisom s gumbom 'Prikaži odabrano'.
Odaberemo stavku okvira popisa 'Bijelo' i dodirnemo gumb 'Prikaži odabrano'. Nakon gumba na GUI zaslonu prikazuje se 'bijeli' tekst.
Zaključak
To je sve o korištenju Tkinter modula u Pythonu. Dodali smo ukupno 2 jednostavna Python primjera da vidimo kako možemo koristiti Listbox u Python kodu putem Tkinter biblioteke. Vidjeli smo kako se različiti widgeti mogu koristiti da Tkinter GUI budu interaktivniji, posebno stvaranje Listboxa i povezanih gumba.