Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 7. nädala sisukord | järgmine > |
7.4 Lihtne kasutajaliides EasyGuiga
LIHTNE KASUTAJALIIDES. MOODUL EasyGui
Seni oleme teinud selliseid programme, kus kasutaja on vastused sisestanud tekstina käsureaaknas. Kui vaatame igapäevaselt kasutatavaid programme, siis toimub kasutajalt info saamine nuppude, hiire liikumise ja nupuvajutuste ja mitmete muude mugavate vahenditega. Kuna nende puhul on tegemist graafilise lahendusega, siis öeldakse, et programm on graafilise kasutajaliidesega (ingl graphical user interface, GUI).
Meie alustame graafiliste kasutajaliideste tegemist mooduli EasyGUI abil. Mooduli kasutamiseks tuleb see esmalt installeerida:
- Ava Thonny
- Vali Tools --> Manage Packages... --> otsida EasyGui --> valida easygui --> Install
Esimese näitena teeme teatega dialoogiakna.
from easygui import * # EasyGui kasutamiseks importida msgbox("Minu esimene graafiline kasutajaliides!!") # teateaken
Tulemus peaks välja nägema selline.
See on lihtsaim dialoogiaken. Sageli on aga vaja kasutajale rohkem võimalusi anda, kui ainult OK vajutada. Järgmises näites on juba mitu nuppu.
from easygui import * nupud = ["lihtne","ok","keeruline"] vajutati = buttonbox("Programmeerimine on ", choices = nupud) msgbox("Te arvate, et programmeerimine on " + vajutati + "!")
Nüüd siis küsitakse nii.
Samuti näidatakse ka kasutaja valikut.
Kui kasutaja vajutab nuppu, siis buttonbox()
tagastab valiku teksti, mis salvestatakse muutujasse vajutati
. Kui kasutaja hoopis suleb dialoogiakna, siis tagastatakse None
.
Kui valikuid on vähe ja nende tekstid on lühikesed, siis on nupud heaks võimaluseks. Pikemate tekstidega ja/või suurema hulga valiku korral võib olla mõistlikum valik järjendina esitamine.
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.
Nüüd on järgmise akna tekst vastavalt vastusele kokku pandud.
KASUTAJA SISESTAB ANDMEID
Kasutajalt saab andmeid küsida funktsiooni enterbox
abil. Kui tahetakse täisarvulist vastust, siis võiks kasutada funktsiooni integerbox
. Sellele saab ette anda ülemise ja alumise piiri. Kui sisestatu ei mahu piiridesse, siis küsitakse uuesti.
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
ja teise puhul funktsiooni integerbox
.
Tulemus näidatakse msgbox
abil.
EasyGuil on veel võimalusi. Näiteks saab lisada pilte. Julgesti võib iseseisvalt edasi uurida EasyGui lehelt.
Vaata ka kokkuvõtvat videot:
EELMISTE OSADE PROGRAMMID KASUTAJALIIDESEGA
Lõpetuseks toome mõne selle nädala varasema näite graafilise kasutajaliidesega variandi.
Faili kirjutamise programm koos faili 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()
Failist lugemise programm 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)
< eelmine | 7. nädala sisukord | järgmine > |