You are on page 1of 4

XII Telekomunikacioni forum TELFOR 2004, Beograd, Sava Centar, 23.-25.11.2004.g.

DIZAJN GRAFI KOG KORISNI KOG INTERFEJSA


KORIŠ ENJEM PROGRAMSKOG PAKETA MATLAB
Stojsavljevi , M.1
1
HDL Design House, Beograd

I UVOD Izlazni podaci su:


Grafi ki korisni ki interfejs (GUI, Graphical User (1) Q faktori polova zadatog filtra,
Interface) omogu ava transparentnu komunikaciju sa (2) U estanosti polova zadatog filtra (w),
korisni kim programom. Prednosti koriš enja grafi kog (3) Uredjeni parovi pol-nula za bikvadratne sekcije na
korisni kog interfejsa su: koje filter može da se razdvoji,
(1) korisnik ne mora da unosi parametre preko konzole, (4) Normalizacione konstante bikvadratnih sekcija,
(2) ako se napravi greška prilikom unošenja jednog od (5) Amplitudska karakteristika zadatog filtra i
parametara, nije potrebno pokrenuti program iz (6) Fazna karakteristika zadatog filtra.
po etka i ekati da se ponovo zatraži unos tog Izabrano je da talasnost, gornja i donja grani na u estanost
parametra, nepotrebno ponavljaju i sve prethodne mogu brojno da se unesu, dok se tip i red filtra biraju iz
korake i liste ponu enih tipova odnosno redova. Q faktori,
(3) rezultati izvršavanja korsni kog programa mogu da u estanosti polova, ure eni parovi polova i nula po
se predstave u pogodnom obliku, na ta no bikvadratnim sekcijama i normalizacione konstante
odre enim mestima. bikvadratnih sekcija ispisuju se u glavnoj konzoli, dok su
Grafi ki korisni ki interfejsi dizajnirani koriš enjem amplitudska i fazna karakteristika predstavljene grafi ki.
programskog paketa MATLAB nude još tri prednosti, od
kojih su prve dve od opšteg zna aja, a poslednja je za II MOGU I NA INI UNOSA ULAZNIH PODATAKA
inženjera koji dizajnira GUI: Postoji nekoliko na ina da se korisni kom programu
(1) kreirani GUI može da se koristi nezavisno od toga predaju ulazni parametri:
da li je dizajniran pod istim operativnim sistemom (1) koriš enjem polja za editovanje teksta,
pod kojim se koristi, (2) koriš enjem kliza a (slider),
(2) prora unate prenosne karakteristike mogu se (3) koriš enjem liste i
predstaviti u okviru grafi kog korisni kog interfejsa, (4) koriš enjem me usobno isklju ivih opcija
a ne svaka u posebnom prozoru i (radiobutton).
(3) proces dizajna grafi kog korisni kog interfejsa je Polje za editovanje teksta naj eš e se koristi kada je
jednostavan, kao i kreiranje potrebnih funkcija i potrebno da korisnik unese brojnu vrednost kao ulazni
potprograma. podatak. Na taj na in je korisniku omogu eno da unese
U ovom radu bi e predstavljeni koraci u razvoju grafi kog podatak sa željenom preciznoš u, koja je ograni ena
interfejsa koriš enjem programskog paketa MATLAB[1] i vizuelno veli inom polja (polje mora da bude dovoljno
sve funkcije i procedure koje se pri tom koriste. Kao primer veliko kako bi sve cifre koje korisnik unese mogle da se
je uzet jednostavan GUI za projektovanje ebiševljevih vide istovremeno) i maksimalnom preciznoš u koju
filtara parnog reda prikazan na slici 1. podržava MATLAB. Dobra strana koriš enja polja za
editovanje teksta je u tome što inženjer koji dizajnira GUI
II PRVI KORAK U GUI RAZVOJU ne mora unapred da odre uje donju i gornju grani nu
Prvi korak koji treba preduzeti prilikom dizajna bilo vrednost za brojnu veli inu podatka koji se unosi, a loša
kakvog grafi kog korisni kog interfejsa je da se nacrta na strana je u tome što u slu aju da postoje neke nedozvoljene
papiru i osmisli svrha upotrebe. Za svaki ulazni podatak vrednosti te situacije moraju posebno da se obrade i da se
treba izabrati jedan od mogu ih na ina da se on unese, a za izda poruka o greški.
svaki izlazni na koji na in e biti predstavljen. U prvom Koriš enje kliza a podrazumeva da e inženjer koji
koraku dizajna za primer koji je u radu predstavljen dizajnira GUI unapred odrediti donju i gornju grani nu
odre eno je da e ulazni parametri biti: vrednost za brojnu veli inu podatka koji se unosi, kao i
(1) talasnost, preciznost sa kojom podatak može da se unese. Dobra
(2) donja grani na u estanost, strana koriš enja kliza a je u tome što su nedozvoljene
(3) gornja grani na u estanost, brojne vrednosti ulaznog podatka automatski isklju ene
(4) tip filtra i (pri emu se podrazumeva da ovakvih vrednosti nema u
(5) red filtra. intervalu izme u donje i gornje grani ne vrednosti), a loša
Slika 1. Primer grafi kog korisni kog interfejsa.

strana je u tome što o grani nim vrednostima i preciznosti Za primer koji je ovde predstavljen iskoriš ene su
sa kojom se podatak unosi mora unapred da se vodi ra una. prednosti metoda unosa podataka putem polja za
Koriš enje liste je najrestriktivniji metod unosa podataka editovanje teksta istovremeno sa prednostima metoda
zato što korisnik bira izme u po pravilu malog broja unosa podataka koriš enjem kliza a. Naime, talasnost,
unapred zadatih opcija. Dobra strana unošenja podataka donja i gornja grani na u estanost mogu se uneti na bilo
putem izbora sa liste ponu enih opcija je u tome što na listi koji od ponu enih na ina pri emu je koriš enjem polja za
lanovi liste mogu da budu re i ili neke druge oznake bez editovanje teksta omogu ena proizvoljna preciznost, a
mogu nosti zabune, a loša strana je što velike liste nisu grani ne vrednosti su odre ene u delu realizacije sa
prakti ne ni pregledne za koriš enje. kliza ima. Funkcije koje odgovaraju paru polja za
Pod me usobno isklju ivim opcijama podrazumeva se da editovanje teksta i kliza a za jednu ulaznu promenljivu
su sve opcije nabrojane i da je svakoj opciji pridruženo me usobno su povezane tako da se kliza pomera unosom
mesto koje treba obeležiti da bi opcija bila izabrana brojne vrednosti u polje i obratno. Predstavljena realizacija
(checkbox). Izborom jedne od opcija automatski se je prakti na i sa te strane što se polje za editovanje teksta i
poništava prethodni izbor, tako da samo jedna opcija može kliza mogu koristiti i naizmeni no, na primer može se
biti izabrana u svakom trenutku. Ukoliko ni jedna opcija uneti jedna brojna vrednost a potom se ona može menjati u
nije izabrana, izbor je dizajnera kako e na to da reaguje. ta no odre enim inkrementima koriš enjem kliza a.
Jedno rešenje je da predvidi neku podrazumevanu vrednost U primeru je predvi eno da se tip i red filtra biraju sa
kao izabranu opciju, a drugo rešenje je da na ovu situaciju liste, što ujedno predstavlja i tipi an primer kada treba
reaguje ispisivanjem poruke o greški. Dobra strana koristiti ovaj tip unosa podataka. Kako kod koji izra unava
unošenja podataka putem me usobno isklju ivih opcija je u izlazne parametre nije fleksibilan, u smislu da korisnik ne
tome što su opcije jasno razdvojene te se mogu može da unese bilo koji tip filtra (a i ne mogu se predvideti
preduprediti eventualne greške koje bi nastale ako bi razni razli iti na ini na koji bi korisnik mogao da ih
postojao na in da se unese podatak koji pripada svojim obeleži) ili bilo koji red filtra (samo filtri parnog reda mogu
osobinama u nekoliko opcija, kao i injenica da su sve se razdvojiti na bikvadratne sekcije), tako je unos
opcije vidljive odjednom (kod liste je deo opcija sakriven i parametara preko liste pravi na in da se predupredi greška
može se videti koriš enjem kliza a ili strelice koja otvara koja bi mogla da nastane unosom pogrešnih vrednosti.
padaju i meni koji nastaju automatski u zavisnosti od
prostora koji je predvi en za listu). Loša strana unošenja III MOGU I NA INI PREDSTAVLJANJA IZLAZA
podataka putem me usobno isklju ivih opcija je u tome što Postoji nekoliko na ina da se predstave rezultati
je broj opcija ograni en prostorom koji je na raspolaganju. izvršavanja korisni kog programa:
Ukoliko je prostor ograni avaju i faktor, bolji izbor je (1) u poljima za editovanje teksta,
unošenje parametara koriš enjem liste. (2) u MATLAB konzoli i
(3) grafi ki. imati informaciju o izabranoj opciji, bilo da je ona zadata
Polja za editovanje teksta mogu se koristiti kako za unos zasebno (checkbox) ili kao jedna iz skupa me usobno
parametara korisni kog programa, tako i za ispisivanje isklju enih opcija (radiobutton). Tada se proveravaju
rezultata ili poruka za korisnika. Razlika je u funkciji vrednosti promenljivih koje se postavljaju u trenutku izbora
kojom se ovo polje implementira. Naime, svaki tekst koji opcije.
se u polju za editovanje ispisuje mora da postoji zabeležen
u nekoj promenljivoj. Prema tome, razlika se svodi na to da V IMPLEMENTACIJA
li e ta promenljiva dobiti vrednost od korisnika ili od Implementacija osmišljenog grafi kog korisni kog
korisni kog programa. interfejsa se odvija u dve faze:
Ispisivanje rezultata u MATLAB konzoli primenjuje se u (1) raspore ivanje i konfiguracija GUI objekata (lista,
situacijama kada rezultati ne mogu da se predstave u kliza a, dugmadi,...),
poljima za editovanje teksta a nepregledno je ili (2) kodovanje funkcija pridruženih objektima.
jednostavno nije predvi eno da se predstave grafi ki. Komandom guide iz MATLAB konzole pokre e se alat
Tipi ni izlazi korisni kog programa koji se predstavljaju koji služi za GUI dizajn. Otvara se prozor sa menjem sa
grafi ki su prenosne funkcije i dijagrami kojima je opisan leve strane u kojem postoje opšti oblici svih objekata.
rezultat. Kao što je ranije re eno, postoji mogu nost da se Svaki objekat treba izabrati, postaviti i konfigurisati.
predvidi u okviru samog grafi kog korisni kog interfejsa Konfiguracija se sastoji iz zadavanja imena funkcije koja je
prostor za grafi ki prikaz rezultata, ali postoje i slu ajevi vezana za objekat (sto nije neophodno, ali je korisno kako
kada to nije prakti no. Dobra strana predstavljanja grafika funkcije ne bi ostale nazvane generi kim imenima koja su
u okviru GUI je u tome što su svi izlazi korisni kog me usobno sli na i razlikuju se samo po rednim brojevima
programa na istom mestu, a loša je u tome što je veli inom istorodnih objekata) i parametara koji opisuju objekat. Za
GUI unapred (proporcionalno) odre ena veli ina grafika te kliza , parametri su inkrement, donja i gornja grani na
ovo rešenje može biti nepregledno. vrednost. Za listu, parametri su lanovi liste. Konfiguracija
Za primer koji je ovde predstavljen je uzeto da se objekata obavlja se izborom parametara i popunjavanjem
amplitudska i fazna karakteristika predstavljaju u posebnim polja koji se vide nakon desnog klika mišem na objekat i
prozorima za grafike, dok se ostali izlazi zbog svoje izbora opcije properites.
složenosti i veli ine ispisuju u MATLAB konzoli. Kada se postigne željeni izgled, gde su na raspolaganju
mnoge pogodne opcije tipa align objects, izbora boje
IV KONTROLA IZVRŠAVANJA svakog objekta ponaosob i boje pozadine i druge, ono što
Korisni ki program od korisnika mora da dobije signal je napravljeno treba sa uvati na standardni na in (save
kada su svi parametri uneti i kada može da po ne sa as...). Kada se GUI sa uva, nastaju jedan .m i jedan .fig fajl
izvršavanjem. Za tu namenu predvi ena su dugmad sa istim imenom. U .fig fajlu sa uvan je izgled GUI (koji je
(pushbutton). Sve funkcije pridružene objektima u okviru upravo kreiran). U novonastalom .m fajlu nalazi se
MATLAB grafi kog korisni kog interfejsa pokre u se polupopunjena struktura koja predstavlja kod koji e se
interakcijom sa objektima kojima su pridružene (za polja izvršavati u radu sa GUI. Polupopunjena zna i da su
za editovanje teksta koja su predvi ena za unos parametara prototipi svih funkcija pridruženih objektima ve tu, sa
interakcija je upis u polje, za listu izbor opcije, za kliza imenima koja su za njih izabrana. Tako e, automatski se
pomeranje kliza a, za me usobno isklju ive opcije izbor generiše uvodni deo programa koji kreira strukturu
opcije, za dugme klik mišem na dugme). Tipom objekta podataka u kojoj e se uvati uneti parametri. Preostalo je
odre en je tip odgovaraju e funkcije a samim tim i da se iskoduju tela tih funkcija u zavisnosti od toga koja je
posledica interakcije. Za sve unose posledica interakcije je njihova namena.
da se uneti parametar sa uva u strukturi podataka koja je za
to predvi ena (handles). Na ovom mestu može se ista i još VI FUNKCIJE PRIDRUŽENE OBJEKTIMA
jedna prednost koriš enja liste i me usobno isklju ivih Sve funkcije pridružene objektima imaju isto zaglavlje:
opcija, a to je što se izborom opcije može izabrati više function varargout = ime_Callback(h, eventdata, handles,
parametara koji su me usobno povezani. Za dugmad je varargin)
posledica interakcije pokretanje algoritma koji e izvršiti Samo postojanje ovog zaglavlja obezbe uje da e se u
prora une pridružene tom dugmetu. U primeru se pritiskom strukturu podataka handles u polje sa oznakom ime
na dugme start pokre e izra unavanje parametra koji je (handles.ime) sa uvati vrednost koja predstavlja uneti
izabran na listi opcija levo od njega. Pritiskom na dugme parametar odnosno interakciju u slu aju kliza a i dugmeta.
amplitudska se pokre e prora un amplitudske U slu aju polja za editovanje teksta i kliza a u
karakteristike zadatog filtra, a pritiskom na dugme fazna se odgovaraju e polje u strukturi podataka bi e sa uvana
pokre e prora un fazne karakteristike zadatog filtra. Ako vrednost koja je uneta. U slu aju liste, svaki lan liste je
neki od potrebnih parametara nije zadat, ispisuje se poruka obeležen rednim brojem, tako da je u odgovarju e polje
o greški. Na ovu situaciju bilo je mogu e reagovati i sa uvan taj redni broj. Case strukturom se u telu funkcije
prikazom rezultata za podrazumevane vrednosti koje su može ispitati koja je opcija izabrana, pri emu to ne mora
definisane za sve parametre. Pritiskom na dugme close GUI da bude telo funkcije vezane za listu ve može da bude telo
se zatvara a sadržani MATLAB konzole se u potpunosti funkcije u kojoj se taj podatak koristi. U slu aju ponu enih
briše. opcija i me usobno isklju ivih opcija svaka opcija ima
Drugi oblik kontrole nad korisni kim programom svoju funkciju. U polje u strukturi podataka koje odgovara
sprovodi se koriš enjem ponu enih opcija (checkbox). U toj opciji uva se 1 ako je opcija izabrana i 0 ako nije. Da li
toku izvršavanja programa, u jednom trenutku potrebno je je opcija izabrana ili nije opet može da se ispita u trenutku
kada je ta informacija zaista potrebna. Sli na situacija je sa me usobnim povezivanjem polja za editovanje teksta i
dugmadima, gde je u odgovaraju em polju u strukturi kliza a. Prilikom unosa pojedinih parametara mogu se
podataka 1 u trenutku u kojem je dugme pritisnuto a 0 u dodeliti vrednosti globalnim promenljivim koje e usmeriti
ostalim slu ajevima. ili ograni iti druge unose podataka, u smislu smanjenog
Naredbom: broja opcija. Recimo, za slu aj da je bilo dozvoljeno
get(handles.ime, ‘value’) unošenje neparnog reda filtra, trebalo bi koristiti globalne
se iz strukture podataka handles iz polja ime uzima podatak promenljive koje e onemogu iti izbor opcija za
koji je pridružen objektu ija je funkcija ime_Callback izra unavanje normalizacionih konstanti bikvadratnih
podatak. sekcija i izra unavanje ure enih parova pol-nula po
Naredbom: bikvadratnim sekcijama. Globalne promenljive treba
set(handles.ime, ‘value’, vrednost) koristiti sa oprezom jer je redosled izvršavanja, ukoliko
se u strukturu podataka handles u polje ime smešta nije u toku unos parametara, sekvencijalan tako da postoji
vrednost. Ukoliko vrednost nije broj nego niz karaktera, mogu nost da se u okviru funkcija za ispisivanje rezultata
onda se umesto ‘value’ piše ‘string’ te se taj niz karaktera koriste pogrešne vrednosti.
kasnije transformiše ili koristi prema potrebi. Na primer,
ako je vrednost broj u decimalnom zapisu, onda se koristi VIII ZAKLJU AK
‘string’ a da bi se izra unala brojna vrednost koristi se
U ovom radu predstavljeni su koraci u razvoju grafi kog
funkcija str2num. Naredba set koristi se tipi no u slu aju
korisni kog interfejsa u okviru programskog paketa
da se polje za editovanje teksta koristi za ispisivanje
MATLAB. Grafi ki korisni ki interfejsi nude mnoge
rezultata, ali može da se koristi i za me usobno
prednosti u odnosu na korisni ke programe koji za prenos
povezivanje objekata. U primeru su polja za editovanje
podataka bilo da je re o ulazu ili izlazu koriste terminalni
teksta i odgovaraju i kliza i povezani tako što u telima
prozor. Najve e prednosti su transparentnost dobijene
odgovaraju ih funkcija postoje set naredbe kojima se
aplikacije prema operativnom sistemu pod kojim se
postavlja ista vrednost u odgovaraju e polje strukture
izvršava i jednostavan postupak dizajna. Predznanje
podataka handles za drugi objekat.
potrebno da se kreira MATLAB GUI se prakti no ne
razlikuje od predznanja potrebnog uopšte za koriš enje
VII TIPOVI PROMENLJVIH I PRENOS MATLAB-a, što ini ovaj na in implementacije
PARAMETARA
korisni kih programa veoma atraktivnim. Postupak koji je
Sve promenljive koje se koriste u telima funkcija
ovde prikazan važi za sve verzije programskog paketa
pridruženim objektima su podrazumevano lokalne.
MATLAB koje podržavaju GUI dizajn.
Vrednost lokalnih promenljivih se može menjati i koristiti
samo u telima funkcija u kojem su izvršene njihove dodele
vrednosti. LITERATURA
Postoji mogu nost koriš enja globalnih promenljivih na [1] Creating Graphical User Interfaces, MATLAB 6.0
slede i na in. Globalna promenljiva mora se deklarisati help and technical support
kao globalna (global ime_promenljive) u telu funkcije u
kojoj joj se dodeljuje vrednost i u telima svih funkcija u
kojima se ona koristi. Na ovaj na in funkcije pridružene DESIGNING GRAPHICAL USER INTERFACES
objektima mogu da razmenjuju podatke, tako da se unos USING MATLAB, Stojsavljevi , M.
parametara i ispisivanje rezultata sistematizuju. Jedan
primer dat je u primeru koji je predstavljen u ovom radu,

You might also like