Tkinter ComboBox

Tkinter Combobox



Paket ttk, edinstvena modifikacija Python Tkinter, uvaja to dodatno komponento. Kombinirano polje Python Tkinter prikaže vsako izbiro iz spustnega menija 1 naenkrat. Ima sodoben videz, zaradi česar je primeren za lokacije, kjer je izpostavljenost ključnega pomena. Pripomoček Entry je razredna sposobnost kombiniranega polja Python. Posledično doda nekaj dodatnih možnosti in funkcij, hkrati pa podeduje več iz razreda Entry.

Ključni pripomoček, ki ga lahko vidite v več programih, je ComboBox. Uporabnik dobi seznam alternativ, med katerimi lahko izbira. Ima več vrednosti in prikaže samo eno naenkrat. Današnja vadnica bo pokrivala, kako uporabljati ComboBox v Linuxu z uporabo Tkinterja.

Primer 1:

Začnimo s prvim primerom modula Tkinter v Pythonu. Preko terminalske konzole ustvarimo novo datoteko Python s pripono “py”. Po tem lahko uporabite kateri koli urejevalnik po vaši izbiri, da odprete novo ustvarjeno datoteko Python iz raziskovalca datotek. To kodo Python začnemo z uvozom knjižnice Tkinter v kodo skupaj z vsemi njenimi podobjekti, razredi in vgrajenimi entitetami.







Uvozimo njegov objekt ttk za uporabo v kodi. Najprej pokličemo funkcijo Tk() Tkinterja, da dodamo novo vrednost za objekt 't'. Objekt 't' se uporablja za klic geometrijske funkcije za ustvarjanje grafičnega uporabniškega vmesnika '200×150'. V tem prvem primeru uporabljamo metodo »frame()« Tkinterja za ustvarjanje okvirja GUI na zaslonu konzole. Objekt 'f' okvirja se tukaj zapre s funkcijo Tkinter pack().



Po tem ustvarimo seznam 'l' vrst nizov, ki vsebuje skupno 5 vrednosti nizov. Po tem uporabimo objekt Tkinter ttk za klic funkcije ComboBox Tkinterja znotraj okvira 'f'. Seznam 'l' se mu posreduje. To kombinirano polje je shranjeno v spremenljivko 'C'. Nastavimo oznako za ComboBox s funkcijo »set« in zapakiramo ComboBox z natančnimi oblazinjenji. Zdaj izvedemo funkcijo mainloop(), da izvedemo celoten program Tkinter.







Po dokončanju skripta Python shranimo kodo s Ctrl+S in se vrnemo na lupinsko konzolo sistema Linux. Poskusimo z navodilom Python3 v lupini, ki mu sledi ime datoteke Python, da izvedemo datoteko, kot je prikazano v naslednjem:

$ python3 test.py



Po izvedbi poizvedbe dobimo naslednji GUI Tkinter na zaslonu naše konzole z naslovom 'tk'. Zaslon GUI vsebuje kombinirano polje, tj. spustni seznam, z naslovom »Izberi 1 barvo« in trikotnim znakom, da ga odprete.

Ko se dotaknete znaka trikotnika, se prikaže dolg spustni seznam z vsemi razpoložljivimi možnostmi. Vidite lahko, da imamo na voljo skupno 5 možnosti.

Recimo, da na spustnem seznamu izberete barvo »Črna«. Videli boste, da je izbrana barva prikazana na območju naslova spustnega kombiniranega polja. Preostali seznam je skrit.

Primer 2:

Oglejmo si še en primer z uporabo druge metode za ustvarjanje kombiniranega polja v Tkinterju. Tako začnemo to kodo Python z uvozom modula Tkinter v isto datoteko Python kot »tk« skupaj z uvozom razreda ttk. Po tem uvozimo funkcijo showinfo() iz razreda sporočilnega polja modula Tkinter. Prav tako uvozimo spremenljivko month_name iz koledarskega modula Pythona.

Funkcijo tk() pokličemo z objektom tk modula Tkinter in rezultat konstruktorja shranimo v spremenljivko “t”. Geometrijska funkcija se pokliče z določenimi parametri, da se ustvari GUI Tkinterja z določeno velikostjo. Funkcijo title() pokličemo s parametrom »Combobox Illustration« za naslov GUI Tkinter in funkcijo Label iz razreda ttk za ustvarjanje oznake »l«. Funkcija pakiranja se uporablja za zapolnitev oznake »l«. Spremenljivka »mn« je ustvarjena s funkcijo StringVar() razreda »tk«. Kombinirano polje »mcb« je ustvarjeno s funkcijo ComboBox in spremenljivim besedilom »mn«. Kombinirano polje mcb se napolni z vrednostmi niza do 13 prek spremenljivke month_name, ki se uporablja v zanki »za«.

Stanje za kombinirano polje »mcb« je nastavljeno samo za branje in je zapakirano. Funkcija choose() je ustvarjena za klic funkcije showinfo() za ustvarjanje opozorilnega pogovornega okna z naslovom »Potrditev« in sporočilom »Izbrali ste {ne glede na vrednost}. Funkcijo bind() pokličemo s kombiniranim poljem »mcb« tako, da dodamo parametre »ComboboxSelected« in funkcijo »change«. Funkcija mainloop() se izvede za zanko iz programa Tkinter. Pred zagonom ga najprej shranimo.

To datoteko izvedemo s poizvedbo python3.

$ python 3 test.py

Naslednji zaslon Tkinter z imenom »Ilustracija kombiniranega polja« se prikaže v naslednjem:

Ko kliknemo na znak trikotnika ComboBox pod naslovom »Izberi mesec«, prikaže imena meseca.

Ko izberemo »julij«, se to prikaže na etiketi in pojavi se pogovorno okno z opozorilom in sporočilom. Za nadaljevanje pritisnite OK.

Zaključek

Gre za uporabo modula Tkinter v Pythonu za ustvarjanje kombiniranega polja v oknu GUI. Za to smo preizkusili dva preprosta, a različna primera Pythona, da bi dosegli cilj z uporabo funkcije frame() in običajnega načina ustvarjanja kombiniranega polja v GUI. Vključili smo vzorčne kode za oba primerka in naredili nekaj sprememb po izvedbi kod.