37 Lihtne kasutajaliides EasyGUIga

Varem kasutasime kasutajaliidese loomiseks moodulit tkinter, kuid selleks on teisigi võimalusi. Seekord vaatame moodulit easygui, millega on kasutajaga suhtlemine lihtsam (kuigi vähem paindlik). Mooduli nimes sisalduv lühend GUI tähistab graafilist kasutajaliidest (ingl graphical user interface).

EasyGUI paigaldamine

Moodul EasyGUI ei ole osa Pythoniga vaikimisi kaasas olevatest moodulitest, seetõttu tuleb see esmalt paigaldada. Mooduli paigaldamiseks ava Thonny ning vali Tools (Tööristad) –> Manage packages… (Halda lisapakke…) –> otsida EasyGui –> valida easygui –> Install.

Nuppudega dialoogiaken

Esimese näitena teeme teatega dialoogiakna:

Näiteprogramm. Ühe nupuga dialoogiaken

from easygui import *                              # EasyGui kasutamiseks importida
 
msgbox("Minu esimene graafiline kasutajaliides!!") # teateaken

Tulemus peaks välja nägema selline:

Sageli on vaja luua rohkem kui üks nupp. Järgmises näites on juba mitu nuppu:

Näiteprogramm. Mitme nupuga dialoogiaken

from easygui import *
 
nupud = ["lihtne","ok","keeruline"]
vajutati = buttonbox("Programmeerimine on ", choices = nupud)
msgbox("Te arvate, et programmeerimine on " + vajutati + "!")

Kui kasutaja vajutab nuppu, siis buttonbox tagastab valiku teksti, mis salvestatakse muutujasse vajutati. Kui kasutaja hoopis suleb dialoogiakna, siis tagastatakse None.

Nüüd küsitakse nii:

Samuti näidatakse kasutaja valikut:

Järjendiga dialoogiaken

Kui valikuid on vähe ja nende tekstid on lühikesed, siis on nupud heaks võimaluseks. Pikemate tekstidega ja/või suurema hulga valikute korral võib olla mõistlikum valik järjendina esitada:

Näiteprogramm. Valik järjendina

from easygui import *
 
variandid = ["minu lemmik","lihtne","ok","keeruline"]
vajutati = choicebox("Programmeerimine on ", choices = variandid)
if vajutati == None:
    msgbox("Te ei valinud midagi!")
elif vajutati == "minu lemmik":
    msgbox("Programmeerimine on teie lemmik! Muidugi nii peakski olema!")
else:
    msgbox("Te arvate, et programmeerimine on " + vajutati + ", hmm, väga huvitav!")

Nii saame järgmise dialoogiakna:

Kasutajalt andmete küsimine

Kasutajalt saab andmeid küsida funktsiooni enterbox abil. Kui tahame täisarvulist vastust, siis on sobilik kasutada funktsiooni integerbox, millele saab ette anda ülemise ja alumise piiri. Kui sisestatu ei mahu piiridesse, siis küsitakse uuesti.

Näiteprogramm. Vanuse küsimine

from easygui import *
 
nimi = enterbox("Tere, kuidas on teie nimi?")
vanus = integerbox("Kui vana te olete?", lowerbound = 1, upperbound = 120)
if nimi == None or vanus == None or nimi == "":
    msgbox("Palun sisestage andmed korrektselt!")
else:
    msgbox("Tere, " + str(vanus)  + "-aastane " + nimi + "!")

Kasutajalt küsitakse kaks küsimust. Esimese puhul kasutatakse funktsiooni enterbox:

Teise küsimuse korral kasutatakse funktsiooni integerbox:

Tulemus näidatakse msgbox abil:

Veel EasyGUI-st

EasyGUI-l on veel võimalusi, näiteks saab lisada pilte. Julgesti võib uurida EasyGUI lehte.

Video

Vaata ka kokkuvõtvat videot.

Failitöötlus kasutajaliidesega

Lõpetuseks toome paar varianti varem uuritud failitöötluse programmidest, kus kasutame graafilist kasutajaliidest:

Näiteprogramm. Faili kirjutamine koos salvestamise aknaga

from easygui import *
 
nimi = enterbox("Palun sisesta oma nimi: ")
vanus = integerbox("Palun sisesta oma vanus: ", lowerbound = 1, upperbound = 120)
aadress = enterbox("Palun sisesta oma aadress: ")
 
failinimi = filesavebox()
 
f = open(failinimi, "w")
f.write(nimi + "\n")
f.write(str(vanus) + "\n")
f.write(aadress + "\n")
f.close()

Näiteprogramm. Failist lugemine koos faili valimise aknaga

from easygui import *
 
failinimi = fileopenbox()
 
f = open(failinimi)
 
nimi = f.readline().strip()
vanus = f.readline().strip()
aadress = f.readline().strip()
 
f.close()
 
tekst = "Nimi: " + nimi + "\n"+ "Vanus: " + vanus + " aastat\n" + "Aadress: " + aadress
 
msgbox(tekst)

 

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Programmeerimine on loodud Eno Tõnisson, Tauno Palts, Merilin Säde, Kaarel Tõnisson jt poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut