Tkinter popisni okvir

Tkinter Popisni Okvir



Zadani GUI alat za Python zove se Tkinter. Kombinacija Pythona i Tkintera omogućuje brz i jednostavan razvoj GUI aplikacija. Učinkovit objektno orijentirani pristupnik za Tk GUI toolkit osigurava Tkinter. Jednostavno je izgraditi Gui sučelje koristeći Tkinter. Unutar ovog vodiča pokazat ćemo vam korištenje Tkinter biblioteke za stvaranje Tkinter GUI i dodavanje Listbox widgeta u njega.

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/python3
iz 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/python3
iz 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/python3
iz 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.