• Dizajn grafičkog korisničkog sučelja. Izrada bloka obuke iz discipline “baze podataka i sustavi za upravljanje bazama podataka”

    Izrada grafičkog korisničkog sučelja, pri čemu je potrebno postaviti grafičke elemente, odabrati opća struktura a protok aplikacija potiče programera da postane nešto poput umjetnika. Ne postoje standardna pravila koja mogu pomoći pri izradi prezentacija, raspoređivanju elemenata i organiziranju strukture. Uspješno grafičko korisničko sučelje smatra se umjetničkim djelom. Budući da je stvaranje sučelja umjetnost, a ne znanost, u ovom području nema strogih pravila kojih se treba pridržavati. Previše je parametara određeno prirodom aplikacije, korisnika i konteksta.

    Međutim, postoji niz praktične preporuke, koji bi programeri trebali slijediti kako bi olakšali dizajn sučelja.

    ¦ Treba izbjegavati složene strukture (kao što je stablo) za povezivanje različitih izbornika. Najbolje je uključiti najviše šest izbornika u jednu liniju izbornika, od kojih svaki neće sadržavati više od šest opcija.

    ¦ Objekti moraju imati dosljedno značenje. Na primjer, da biste aktivirali sve ikone, dvaput kliknite mišem. Neki moderna sučelja ne ispunjavaju ovu preporuku i sadrže piktograme koji postaju učinkoviti tek nakon što ih korisnik vuče

    prigovoriti im. Trake za pomicanje trebale bi se koristiti samo za pomicanje, a ako se koriste unaprijed napravljene ikone biblioteke, trebali biste ih pažljivo provjeriti kako biste bili sigurni da se, na primjer, ikona pisača uvijek koristi za ispis.

    ¦ Prilikom aktiviranja svih ikona, kao što je gore navedeno, trebate dvaput kliknuti mišem. A da biste dobili sličan rezultat za ikone objekata koje se aktiviraju jednim klikom miša, preporuča se programirati i dvostruki klik. Mnoge opcije, poput onih iz izbornika Control Panel, izgledaju kao ikone, ali su objekti koji se aktiviraju jednim klikom miša. Trebali biste predvidjeti kako bi se korisnici mogli ponašati kada rade s takvim objektima (tj. očekivati ​​da će dvaput kliknuti na njih) i pomoći im da postignu željeni rezultat.

    ¦ Izbornici sučelja trebaju odražavati trenutno stanje sustava. Jedan od osnovnih principa koji vodi većinu dizajnera grafičkog korisničkog sučelja je osigurati da su sve značajke sučelja dostupne bez obzira na radnje korisnika. Donje pravilo dobro odgovara jednostavnim aplikacijama, ali je manje korisno za složenije.

    ¦ Elemente zajedničke različitim jelovnicima treba staviti na jedno mjesto. Ali, na primjer, gumbi U redu i Odustani uvijek bi trebali biti postavljeni na isti način jedan u odnosu na drugi i zauzimati isto mjesto u različitim dijaloškim okvirima.

    ¦ Ne biste trebali težiti dosljednosti elemenata izbornika ako to ne odgovara mišljenju korisnika. Na primjer, korisnici vjeruju da povlačenje datoteke iz jedne mape u drugu na istom uređaju uzrokuje premještanje datoteke u drugu mapu.

    Također vjeruju da se povlačenjem datoteke na drugi uređaj tamo stvara kopija originala. Iz ovoga slijedi da će provedba funkcije vuče biti nedosljedna, tj. različite u različitim slučajevima. No, to je želja korisnika koja se mora uzeti u obzir. Težnja za dosljednošću samo je preporuka, a ne čvrsto i brzo pravilo.

    Ergonomski zahtjevi za grafička korisnička sučelja pokazali su se očito nedostatnima s razvojem "multimedija" - interaktivnih sustava koji omogućuju rad s nepokretnim slikama i pokretnim videom, animiranom računalnom grafikom i tekstom, govorom i zvukom visoke kvalitete. Ergonomsko istraživanje i razvoj ovih sustava predstavlja izazovan i profesionalno uzbudljiv izazov.

    Većina projektnih menadžera za razvoj aplikacija, napominje B. Tognazzini, čekaju dok se projekt ne završi kako bi počeli raditi na sučelju. Ovo podsjeća na gradnju kuće, kada je arhitekt pozvan nakon izgradnje okvira zgrade. Svi programeri imaju različite pristupe organiziranju procesa stvaranja sučelja. Međutim, postoje opće točke kojih bi se svi programeri trebali pridržavati:

    1) razumjeti svrhu softverski proizvod u svakom detalju blisko komunicirajući s korisnicima, često provodeći cijele radne dane s njima kako bismo bolje razumjeli njihov stil rada i individualne navike;

    2) stvaranje sučelja nije posao jedne osobe, već predstavnika tri područja: stručnjaka koji saznaje mišljenja korisnika o glavnim elementima sučelja i opisuje ih; programer sučelja i kreator grafike;

    3) treba odrediti jednog iskusnog zaposlenika kao stručnjaka za sučelje i vezu između radne skupine i korisnika;

    4) testiranje, izrada izgleda i ponovno testiranje, jer čak i ako je svrha softverskog proizvoda u potpunosti shvaćena, nemoguće je osigurati sve potrebe korisnika.

    Sučelja bi trebali stvarati ljudi, smatra D. Norman, koji ne sudjeluju u razvoju aplikacije, jer programeri znaju previše o principima programa, a to samo ometa izradu sučelja. Prednosti grafičkog korisničkog sučelja općenito su prepoznate i možda
    Stoga nije postao predmet ozbiljne analize. Tradicionalno pravilo programera prema kojem jednostavnost učenja često sprječava korisnika da naknadno u potpunosti iskoristi sve mogućnosti programa, također vrijedi i za grafičko sučelje. Primjer je razvoj projekta za američku osiguravajuću tvrtku, u kojem su koristili jednu osiguravajuću aplikaciju za Macintosh, opremljenu izvrsnim sučeljem koje je bilo vrlo jednostavno za naučiti. Međutim, nakon dvije godine rada, krajnji korisnici su postali toliko iskusni razne funkcije ovu aplikaciju da ih je grafičko korisničko sučelje samo usporilo. Izbor grafičkog sučelja trebao bi biti određen prirodom zadatka korisnika.

    GUI standard.

    Jedan od velike promjene u računalnoj industriji – pojava grafičkog sučelja. Dakle, postoji li potreba za usvajanjem GUI standarda koji definiraju kako bi Windows aplikacije trebale izgledati? Macintosh, itd. Postoje čak i certifikacijski programi u kojima dobavljači prilagođavaju svoje aplikacije kako bi zaradili Windows značku. To se radi iz nekoliko razloga.

    Jedna od prednosti Windowsa ili Maca je njihov standardni izgled. Kad ste naučili raditi u jednom od njih, smatrajte da ste savladali i ostale. Većina Windows aplikacija koristi iste konvencije, tako da znate kako otvoriti, spremiti, ispisati, zatvoriti i kopirati datoteku u bilo kojoj od njih. Standardno sučelje vrlo je jednostavno za korisnike. Morate pokušati učiniti svoje aplikacije sličnim drugim Windows aplikacijama s kojima su korisnici već naučili raditi. Postoji sedam općih načela za GUI dizajn. Ako ih naučite i slijedite ih, dizajn vaše aplikacije bit će u redu.

    Sedam principa GUI dizajna.

    Sedam općih načela dizajna GUI-a preuzeto je iz Microsoft Windows Interface Guide. Oni čine nacrt iz kojeg možete kreirati vlastite standarde. Ovaj dizajn programerima i korisnicima pruža dvije značajne prednosti. Prije svega, aplikacije izgledaju profesionalno. Drugo, funkcionalni su, dosljedni s drugim aplikacijama i korisnici ih lako uče.

    Naravno, da bi prijava bila uspješna, mora biti dobro napisana i korisna – to su glavni uvjeti. Načela o kojima govorimo jednostavno daju programeru hranu za razmišljanje.

    1. Dopustite korisniku da kontrolira aplikaciju.

    2. Slijedite paradigmu objekt/radnja.

    3. Budite dosljedni.

    4. Učinite korištenje aplikacija jednostavnim i očiglednim.

    5. Težite harmoniji.

    6. Pružite povratne informacije korisnika.

    7. Budite popustljivi

    Prvo načelo: Dajte korisniku kontrolu nad aplikacijom.

    Korisnik mora kontrolirati aplikaciju, odnosno imati pristup svakom modulu aplikacije iz bilo kojeg drugog modula. Prethodno se za takav pristup koristio hijerarhijski izbornik.


    Recimo da korisnik želi dodati novog klijenta. U ovom primjeru, korisnik mora otići na modul ACCOUNTS RECCIEVAble i zatim od tamo dodati novog klijenta. Kako on zna što mu je činiti? Vjerojatno iz mog iskustva s ovom aplikacijom. A u GUI svijetu, korisnik jednostavno izabere New naredbu iz izbornika, zatim Customer, kao što je prikazano na sl. U ovom moderni sustav Možete dodati novog kupca, dobavljača ili stavku inventara pomoću izbornika Datoteka. To vam omogućuje da promijenite evidenciju kupaca dok ste na zaslonu trgovca i obrnuto. Korisnik se više ne mora kretati složenim i zbunjujućim hijerarhijskim izbornicima.

    Drugo načelo: slijedite paradigmu objekt/radnja.

    Paradigma objekt/akcija navodi da se neka operacija može izvesti na svim objektima u sustavu. Najjednostavniji i najočitiji primjer je zaslon za podršku baze podataka korisnika (Sl.). Zaslon sadrži niz gumba, a svaki od njih na dnu vam omogućuje izvođenje neke radnje na informacijama o odabranom klijentu. Možete ga brisati, uređivati, ispisivati ​​itd. Radnje koje se mogu izvesti na određenom klijentu moraju biti dostupne ili nedostupne u odgovarajuće vrijeme. Na primjer, kada je zapis kupca u načinu uređivanja, gumbi Izbriši i Novo trebali bi biti onemogućeni.

    Treći princip: budite dosljedni.

    Dosljednost je jedno od najvažnijih načela dizajna GUI-ja. GUI – omogućuju korisnicima istraživanje više aplikacija od starijih programa. I sve to zahvaljujući načelu dosljednosti. Kada korisnik naiđe na novu aplikaciju, već je s njom upoznat glavne ekipe: Otvaranje, ispis i spremanje datoteka. Aplikacije razvijene na tim platformama obično su međusobno usklađene.

    Stoga, kada kreirate nove aplikacije, budite dosljedni. Ako ste koristili naredbu New za dodavanje novog unosa, koristite je posvuda. Ovu riječ ne treba zamjenjivati ​​drugima - na primjer, riječju Dodaj 9dodaj). Zahvaljujući vašoj dosljednosti, korisnici će znati da gdje god naiđu na New naredbu, ona se može koristiti za dodavanje novog unosa.

    Četvrto načelo: neka korištenje aplikacije bude jednostavno i očito.

    Drugi način izražavanja ove ideje je: nemojte koristiti žargon. Postoji zaslon s dvije tipke. Jedan od njih kaže “Zapakiraj bazu podataka”, a drugi kaže “Ukloni zapise označene za brisanje”. Drugi će unos vjerojatno biti razumljiviji korisniku.

    Pri razvoju aplikacija često postoji napast da se u sučelju koristi programerski sleng. Pokušajte to izbjeći ako je moguće.

    Peto načelo: Težite harmoniji

    Čak i crno-bijeli, ovaj zaslon ima značajan estetski nedostatak: bijelu pozadinu s kontrastnim objektima na njoj. Na sl. Isti zaslon izgleda dobro uravnoteženo u pogledu boja.

    Postoje milijuni kombinacija boja koje možete prenijeti u Windows. Znači li to da ih sve treba koristiti? Naravno da nije. Treba odabrati jednostavne, mirne boje i izbjegavati njihovo kaotično miješanje, što iz nekog razloga neki programeri vole.

    Šesti princip. Pružite povratnu informaciju korisniku.

    Zamislite da vaša aplikacija ima proces za čije izvršenje treba dugo vremena. Za to vrijeme na ekranu možete prikazati poruku sljedećeg sadržaja: “Program radi, pričekajte.” Prikladno rješenje; ali kako korisnik zna da nije zaleđeno? Stoga je vrlo vjerojatno da će aplikaciji dati “pozdrav s tri prsta” (Ctrl+Alt+Del), iako će s programom biti sve u redu.

    Bolje je pokazati korisniku koji je dio procesa završen. Tada neće nepotrebno prekidati program, moći će procijeniti koliko je posao napredovao i raditi druge stvari dok se proces ne završi. Tako će produktivnost korisnika porasti za otprilike 25 posto. Ovaj se rezultat može postići jednostavnim prikazivanjem mjerača na zaslonu. Obično se prikazuju poruke poput "10 od 100 zapisa obrađeno" ili "40% dovršeno". Još bolje je prikazati i broj obrađenih zapisa i njihov postotak."

    Sedmo načelo: Opraštajte

    Svatko od nas ponekad je izbrisao objavu slučajnim pritiskom na krivi gumb. Stoga dajte korisniku priliku da se predomisli ili poništi upravo poduzete radnje. Ako proces traje dugo, mijenja puno podataka ili zahtijeva od korisnika da napravi sigurnosnu kopiju podataka prije izvođenja radnje, trebali biste izdati odgovarajuće upozorenje. Vidio sam aplikacije koje zahtijevaju potvrdu dvaput, a zatim traže lozinku. Trebaju li vaši programi ovu razinu zaštite? Možda. Zadatak programera je pomoći korisniku ako je pogriješio u bilo kojoj fazi rada.

    Važnost GUI standardnih konvencija.

    Kao što vidite, principi GUI dizajna su vrlo jednostavni i trebali bi se koristiti pri izradi zaslona. Međutim, prije nego što dizajnirate zaslon, morate odrediti kako će izgledati. Odaberite njegove veličine, fontove, boje, stilove poruka itd. Rješavanjem ovih problema unaprijed, značajno ćete ubrzati svoj rad. Što se kasnije tiče fonta ili stila poruka, gledate samo standard.

    Slanje vašeg dobrog rada u bazu znanja jednostavno je. Koristite obrazac u nastavku

    Studenti, diplomanti, mladi znanstvenici koji koriste bazu znanja u svom studiju i radu bit će vam vrlo zahvalni.

    Objavljeno na http://www.allbest.ru/

    Objavljeno na http://www.allbest.ru/

    FEDERALNA AGENCIJA ZA OBRAZOVANJE RF

    Državna obrazovna ustanova

    visoko stručno obrazovanje

    Ruska državna humanitarna sveučilište

    Institut informacijskih znanosti i sigurnosnih tehnologija

    Zavod za opću informatiku

    TEST

    U INFORMACIJSKOJ TEHNOLOGIJI

    GRAFIČKA SUČELJA I ALATI ZA NJIHOVI RAZVOJ

    Lisičenok Konstantin Viktorovič

    Stažiranje 3 godine studija

    (4 godine trajanja studija)

    Skupina b (informacijska sfera)

    znanstveni voditelj,

    Ph.D., nastavnik: Mashintsov E.A.

    Moskva 2005

    Plan

    Uvod

    X prozorski sustav

    Opća struktura sustava X prozor

    Programiranje korištenjem X Toolkit Intrinsic (Xt) biblioteke

    Xt objekti, njihova klasifikacija

    Izvori informacija

    Uvod

    Kada je Streci prvi put 1959. godine na UNESCO-ovoj konferenciji o obradi informacija predložio način dijeljenja vremena za rješavanje problema na računalima, od tog se trenutka počelo računati s početkom interaktivnog računalstva, a time i proučavanja sučelje čovjek-stroj. Kako se snaga računala povećavala, tako je rasla i cijena konverzacijske komponente softvera. Pitanje učinkovitosti stroja postalo je akutnije tijekom brzog ulaska na tržište radnih stanica koje su kombinirale interaktivnost s grafikom. Pojam učinkovitost je od tada promijenio svoje značenje - ako je prije odražavao karakteristike kao što su procesorsko vrijeme i količina zauzete memorije, sada se shvaća kao lakoća razvoja, lakoća održavanja i jednostavnost rada s programom. Stoga je trošak istraživanja i razvoja korisničkog sučelja opravdan.

    Razvoj bilo kojeg aplikacijskog softvera u pravilu uključuje izradu korisničkog sučelja. Budući da se većina modernih korisničkih sučelja temelji na sličnim idejama ( aktivno korištenje"miševi", objektna orijentacija, grafika itd. - imitacija procesa i pojava, mogućnost korištenja algoritama koji su svakom čovjeku poznati iz svakodnevnog života), zatim postoji mogućnost i potreba razvoja pomoćnog softvera namijenjenog stvaranju ovakvih “standardnih” sučelja, odnosno njihovih baza.

    S druge strane, mnoštvo i raznolikost hardverskih i sistemskih platformi na kojima će ovaj softver morati raditi zahtijeva njegovu prenosivost na razini izvornog koda. Navedeni zahtjevi logično dovode do ideje prijenosnog unificiranog softverskog alata za izradu korisničkih sučelja ili, ako uzmemo u obzir finalni aplikacijski programski proizvod, sustava (modula, bloka) koji upravlja (upravlja, upravlja, održava, upravlja) sučelje s korisnikom.

    Takve alate (alate korisničkog sučelja) možete klasificirati prema sljedećoj shemi:

    * Sustavi prikaza teksta (prokletstvo, ncurse, itd.).

    * Sustavi grafičkog zaslona.

    * Sustavi s više prozora (WMS):

    * orijentiran na znakove (tekst);

    * grafički;

    *Korisnički alati

    * tradicionalno;

    * objektno orijentirani;

    * UIDS - User Interface Development System - sustav za razvoj korisničkog sučelja (toolkit);

    * UIMS - User Interface Management System - sustav korisničkog sučelja (upravljanja) (programski modul - sastavni dio finalnog proizvoda u sprezi s pripadajućim UIDS-om);

    * UIDE - User Interface Development Environment - razvojno okruženje korisničkog sučelja.

    Ova shema ne pretendira biti sustavna klasifikacija; ona je jednostavno nabrajanje.

    Trenutno se ulažu veliki napori u razvoj metoda i kreiranje alata unutar sustava pod nazivom UIMS - User Interface Management System.

    sustavX prozor

    X prozor ili samo X je sustav za izradu grafičkog korisničkog sučelja, u početku na računalima s UNIX-om. X je stvoren na MIT-u (Massachusetts Institute of Technology). Trenutačno je verzija 11.6 (X11R6) već objavljena i aktivno su u tijeku pripreme za izdanje verzije 7.

    Posebna značajka X Windowa je njegova arhitektura - izgrađen je prema shemi klijent-poslužitelj. Interakcija između X klijenta i X poslužitelja odvija se unutar okvira odgovarajućeg protokola aplikacijskog sloja - X protokola. X Window je ravnodušan prema korištenom prijenosu, koji može biti ili lokalni UNIX-socket ili bilo koji mrežni, na primjer, TCP. To znači da X klijent i X poslužitelj mogu “živjeti” na različitim računalima, tj. program može obavljati ulaz/izlaz grafičke informacije na ekranu drugog računala, a razlike u arhitekturi X-klijenta i X-poslužitelja ne igraju nikakvu ulogu - to osigurava standard X-protokola. Sustav daje grafički izlaz na zaslon stroja, prima signale s ulaznih uređaja kao što su tipkovnica i miš te ih prenosi programima. Treba napomenuti da izlazni uređaj može imati više od jednog zaslona. X daje izlaz bilo kojem od njih. Sve ovo: zaslon (zasloni), ulazni uređaji (tipkovnica, miš) naziva se X Window terminima - zaslon.

    Zahvaljujući svojoj arhitekturi, X Window se može slobodno koristiti u distribuiranim računalnim sustavima, na primjer, u TCP/IP mrežama (Internet).

    X omogućuje korisniku (iza zaslona) da komunicira s više programa istovremeno. Kako bi spriječio miješanje izlaza s njih, sustav stvara "virtualne podzaslone" - prozore - na zaslonu zaslona. Svaka aplikacija (u pravilu) crta samo u svom prozoru (ili prozorima). X pruža skup alata za stvaranje prozora, njihovo pomicanje po zaslonu, promjenu veličine, prikazivanje i tako dalje.

    Programi u pravilu imaju skup konfiguracijskih parametara – resursa. To može biti boja prozora, različiti parametri fonta teksta (ligatura, veličina itd.) I još mnogo toga. Sustav standardizira način definiranja aplikativnih resursa, upravljanja njima te sadrži niz procedura za rad s njima. Ovaj skup funkcija naziva se "upravitelj resursa" (Xrm - X resource manager). "Skladište" programskih parametara naziva se baza podataka resursa.

    X djeluje u skladu s ideologijom arhitekture vođene događajima - organizira komunikaciju između samih programa te između programa i vanjskog okruženja putem događaja. Događaj je jedinica informacija koja identificira promjene ili akcije koje se događaju u sustavu. Pomoću identifikatora događaja možete dobiti informacije o njemu - vrstu događaja, njegove karakteristike, gdje se dogodio itd.

    Općenito X Window uređaj

    sustav X prozor je zbirka programa i biblioteka. Njegovo "srce" je poseban program - X server. Ovo je zaseban UNIX proces koji se odvija na računalu na koje je priključen zaslon. Poslužitelj je taj koji poznaje značajke određene opreme i zna što treba učiniti da bi se bilo koji grafički objekt, na primjer, primitivan, prikazao na ekranu. Također može uočiti i obraditi signale koji dolaze s tipkovnice i miša.

    Poslužitelj komunicira s klijentskim programima slanjem ili primanjem paketa podataka od njih. Ako su poslužitelj i klijent na različitim računalima, tada se podaci šalju preko mreže, a ako su na istom računalu, tada se koristi interni kanal. Na primjer, ako poslužitelj detektira da je korisnik pritisnuo tipku miša, tada priprema odgovarajući paket (event) i šalje ga klijentu u čijem se prozoru nalazio kursor miša u trenutku pritiska na tipku. I obrnuto, ako program treba nešto prikazati na zaslonu, on stvara potrebni paket podataka i šalje ga poslužitelju. Očito, opis ove interakcije, formati paketa itd. te sastavlja specifikaciju za gore spomenuti X protokol.

    Međutim, da biste programirali za X, ne morate znati detalje implementacije poslužitelja i X protokola. Sustav pruža standardnu ​​biblioteku procedura pomoću kojih programi pristupaju X uslugama "na visokoj razini". Dakle, da bi se točka prikazala na ekranu, dovoljno je pozvati odgovarajuću standardni postupak, prosljeđujući mu potrebne parametre. Ovaj postupak će obaviti sav posao generiranja paketa podataka i njihovog prijenosa na poslužitelj.

    X prozor

    Kao što je ranije spomenuto, prozor je osnovni koncept u X-u. On obično predstavlja pravokutno područje na ekranu koje sustav pruža klijentskom programu. Potonji koristi prozor za prikaz grafičkih informacija.

    Prozor ima unutrašnjost i rub. Glavni atributi prozora su širina i visina unutrašnjosti, kao i širina (debljina) ruba. Ovi parametri se nazivaju geometrija prozora.

    Svakom prozoru pridružen je koordinatni sustav čije je ishodište u gornjem lijevom kutu prozora (točnije njegovoj unutrašnjosti). X-os pokazuje udesno, a y-os pokazuje prema dolje. Mjerna jedinica na obje osi je piksel.

    X Window omogućuje programu stvaranje više prozora u isto vrijeme. Oni su povezani u hijerarhiju u kojoj su neki "roditelji", a drugi "potomci". Poslužitelj sam stvara jedan glavni prozor na svakom ekranu, koji je najviši "roditelj" svih ostalih prozora. Ovaj prozor se naziva "root" prozor.

    Upravljanje prozorima

    Prozori se mogu proizvoljno postaviti na ekranu, preklapajući se. X Window ima skup alata pomoću kojih klijentski program može mijenjati veličinu prozora i njihov položaj na ekranu. Posebnost sustava je da nema ugrađenu mogućnost upravljanja prozorima pomoću miša ili tipkovnice. Da biste to učinili, potreban vam je poseban klijent - upravitelj prozora.

    Međutim, upravitelj ne može ispravno upravljati prozorima ako ne zna ništa o njima. Prozori mogu imati različita svojstva koja upravitelj prozora mora osigurati: na primjer, u mnogim je slučajevima zgodno imati naslove prozora, u drugima je poželjno da prozor ne može biti manji ili obrnuto - veći, određene veličine. Prozor se može "skupiti" u ikonu ("ikona") - u ovom slučaju upravitelj mora znati koju ikonu koristiti i kako je nazvati. Svoje želje u pogledu prozora klijenti mogu priopćiti upravitelju na dva načina:

    * prilikom kreiranja prozora X mogu se prenijeti "naputci" o početnoj poziciji prozora, njegovoj geometriji, minimalnoj i maksimalnoj veličini itd.;

    * možete koristiti ugrađeni način komunikacije između programa u X - mehanizam “svojstva”.

    X Window Grafičke značajke

    X Window System dizajniran je za rad na rasterskim zaslonima. Broj bitova po pikselu naziva se dubina ili debljina zaslona. Bitovi sa identične brojeve(iste binarne znamenke) u svim pikselima čine neku vrstu ravnine, kao da su paralelne sa zaslonom. Zove se ravnina boja. X vam omogućuje slikanje u bilo kojoj ravnini boja bez utjecaja na ostale.

    Vrijednost piksela ne postavlja izravno boju točke na ekranu, već postavlja broj ćelije u posebnom polju u kojem se pohranjuje vrijednost boje, tj. vrijednost piksela određuje broj boje u trenutnoj paleti.

    X ima velik skup procedura koje vam omogućuju crtanje grafičkih primitiva: točaka, linija, lukova, teksta; rad s područjima slobodnog oblika.

    "Svojstva" i atomi

    X Window ima ugrađene mogućnosti za pružanje informacija između klijentskih programa. Da biste to učinili, koristi se mehanizam "svojstava". "Svojstvo" je informacijska struktura povezana s nekim objektom, kao što je prozor, koji je dostupan svim klijentima X-a. Svako svojstvo ima ime i jedinstveni identifikator - atom. Obično se nazivi nekretnina pišu velikim slovima. Atomi se koriste za pristup sadržaju svojstava kako bi se smanjila količina informacija koja se šalje između klijenata i X poslužitelja.

    X nudi niz postupaka koji vam omogućuju prevođenje naziva svojstva u jedinstveni atom i, obrnuto, dobivanje potrebnih podataka za atom.

    Neka svojstva i njihovi odgovarajući atomi unaprijed su definirani i stvaraju se u vrijeme inicijalizacije poslužitelja.

    Programiranje pomoću knjižniceX Toolkit Intrinsic (Xt)

    Kako bi programiranje na X window sustavu bilo lakše, kreirano je nekoliko paketa. De facto standard trenutno je biblioteka X Toolkit Intrinsics (Xt), koja je uključena u standardnu ​​isporuku sustava. Xt olakšava pokretanje programa i stvaranje prozora. Osim toga, biblioteka sadrži alate za kreiranje objekata (kontrolnih elemenata) koje koriste programi u komunikaciji s korisnicima. U izrazima Xt, kontrolni element se naziva widget.

    Trenutno su različiti skupovi kontrolnih elemenata (objekata) implementirani na temelju paketa, na primjer, Athena, OSF/Motif, Open Look. Ovi setovi, u kombinaciji sa samim Xt-om, koriste se kao praktičan alat za kreiranje sučelja. Preuzimaju rutinski posao koji pišu vlastitu aplikaciju korištenje samo rutina knjižnice jezgre X Window programer bi morao obaviti ručno.

    Xt Osnove

    programiranje korisničkog grafičkog sučelja

    Xt objekti

    Xt paket je baza za kreiranje kontrolnih elemenata - widgeta (praznina). U Xt smislu, widget je jednostavno struktura podataka čija polja uključuju ID samog elementa, ID njegovog prozora, ako postoji, i mnogo više. Atributi takvog objekta nazivaju se resursi. Resursi widgeta mogu biti, na primjer, boja njegovog prozora, boja obruba prozora, font prikazanog teksta itd.

    Svaki objekt pripada jednoj od unaprijed definiranih klasa (klasa widgeta). Klasa se shvaća u uobičajenom smislu za objektno orijentirano programiranje, tj.: klasa se može smatrati skupom instanci (objekata) koji imaju iste karakteristike. Xt klase tvore hijerarhiju.

    Tijekom rada program kreira same objekte (instance klasa – widget). Oni tvore agregate, od kojih svaki također predstavlja određenu hijerarhiju. Svaka takva hijerarhija naziva se stablo objekata (stablo widgeta). Korijen stabla je nužno widget, koji pripada jednoj od podklasa posebne klase - Shell. Ako je među dva widgeta A i B stabla objekata, prvi bliži korijenu od drugog, tada je A nadređeni objekt ("roditelj") od B, a B je podobjekt (ili "dijete" objekt ( dijete)) od A. Dakle, objekt ljuske je nadređeni widget svih ostalih widgeta u stablu objekata. On je taj koji komunicira između programa i upravitelja prozora.

    Opisana hijerarhija widgeta odgovara odnosu njihovih prozora, što je svojstvo X Windowa. Osim toga, druga hijerarhija je nametnuta objektima. Činjenica je da tijekom rada neki objekti mogu kontrolirati druge. Na primjer, ako objekt ima podobjekte, tada kada se geometrija promijeni, može automatski ponovno izgraditi geometrije svojih potomaka. Kako bi se to dogodilo, uspostavlja se veza između widgeta - "kontrolna" veza. Svaki objekt može imati jedan ili više podobjekata kojima "upravlja".

    Postoje tri mehanizma za interakciju između programa koji koristi Xt i widgeta i X prozora.

    *Povratni poziv

    Procedure ("postupci povratnog poziva"). Za svaku klasu definiran je skup akcija na koje objekti koji joj pripadaju moraju reagirati. Na primjer, svaka klasa ima odgovor na uništenje widgeta. Kada se radnja izvrši, poziva se ili standardna Xt funkcija ili jedna ili više rutina koje nudi program. Takve funkcije nazivaju se procedure povratnog poziva ili jednostavno povratni poziv.

    *Akcijski

    -postupci. Program može narediti reakciju na određeni složeni događaj (skupinu događaja) koji dolazi od Xt. Ako se dogodi događaj, Xt traži i poziva odgovarajuću funkciju.

    *Rukovatelji događajima

    - rukovatelji događajima. Ova je metoda slična prethodnoj, ali brža i manje fleksibilna. Omogućuje vam da reagirate samo na jednostavne (pojedinačne) događaje, ali ne i na njihove sekvence.

    Opća programska shema

    Programi koji se izvode u X-u moraju izvršiti niz standardnih koraka, kao što je uspostavljanje veze s poslužiteljem, postavljanje potrebnih svojstava za upravitelj prozora i mnoge druge korake. Ako se koristi Xt, onda se sve to radi jednom procedurom - XtInitialize(). Inicijalizira sam paket, upravitelj resursa (\term resource manager) X Window i izvodi druge potrebne operacije. Poziv XtInitialize() mora prethoditi svim drugim pozivima XtInitialize(). shell-widget identifikator , koji se može koristiti kao korijen stabla programa obično je isto kao i ime programa, ali upravitelj resursa koristi naziv programa i klasu svoje parametre u bazi podataka resursa.

    Svaki program može postaviti neke parametre u naredbenom retku. Xt definira "standardne" parametre koji se mogu proslijediti prilikom pokretanja programa. Osim toga, naredbeni redak može sadržavati nestandardne parametre koji su jedinstveni za ovu aplikaciju. XtInitialize() skenira naredbeni redak i postavlja odgovarajuće vrijednosti podataka u bazu podataka.

    Tijekom inicijalizacije stvara se i programski kontekst - struktura koja pohranjuje sve informacije o aplikaciji. Kontekst je namijenjen zaštiti programa od utjecaja raznih izmjena u operativnom sustavu. XtInitialize() stvara neki standardni kontekst (default context), ali, unatoč tome, počevši od četvrte verzije X-a, preporuča se kreirati poseban "osobni" kontekst za svaku pojedinačnu instancu programa, za što, u smislu Xt , trebali biste upotrijebiti poziv procedure XtAppInitialize() ( umjesto XtInitialize()). Imajte na umu da aplikacija u Xt-u može imati ne jedan, kao obično, već nekoliko objekata " vrhunska razina".

    Sljedeći korak nakon inicijalizacije je faza kreiranja upravljačkih elemenata programa, opisivanje odnosa među njima, postavljanje reakcija na različite događaje (registracija rukovatelja događajima i drugih sličnih objekata). To se može učiniti na različite načine, ali tradicionalni način je korištenje, na primjer, procedure XtCreateWidget() za stvaranje objekta, procedure XtManageChild() za prijenos kontrole nad objektom na njegovog roditelja, procedure XtAddEventHandler() za registrirati rukovatelje događajima za widgete, itd. itd.

    Nakon što su svi programski objekti pripremljeni za rad, njihovi grafički prikazi (primjerice, prozori koji odgovaraju tim widgetima) prikazuju se na ekranu procedurom XtRealizeWidget().

    Sljedeća faza je glavni ciklus - ciklus primanja i slanja događaja. Implementira se pozivanjem procedure XtMainLoop() (XtAppMainLoop()).

    Program koji koristi samo procedure temeljne X biblioteke (Xlib) sam mora uzeti u obzir svaki dolazni događaj (primajući ga iz reda čekanja događaja eksplicitnim pozivom, kao što je XNextEvent() ili XPeekEvent()) i odgovoriti u skladu s tim. Ako zadatak ima nekoliko prozora, prije izvođenja bilo kakvih radnji, potrebno je odrediti u kojem se od prozora događaj dogodio i na kojoj razini hijerarhije će se taj događaj obrađivati ​​(hoće li ovaj objekt ili njegov roditelj obrađivati ​​ovaj događaj?) . Sve je to dosta zamorno.

    Xt se brine za sve rutinske poslove. XtMainLoop() prima sljedeći događaj i određuje prozor kojem je namijenjen. Duž prozora nalazi se odgovarajući widget. Za potonje je definiran rukovatelj događajem, postupak akcije ili povratni poziv, registriran za reakciju na događaj koji se dogodio. Ako postoji neka mreža, ona se zove. Gore opisani mehanizam naziva se emitiranje događaja.

    XtMainLoop() (XtAppMainLoop()) automatski prekida program kada to zatraži upravitelj prozora.

    Xt objekti, njihova klasifikacija

    Xt pruža skup alata za stvaranje objekata koje programi koriste za komunikaciju s korisnikom i, općenito, s ostatkom vanjskog svijeta.

    Svaki stvoren programom widget je predstavnik jedne ili druge klase. Xt i paketi temeljeni na njemu, kao što su OSF/Motif, Athena, Tk/tcl, Open Look, itd., imaju veliki broj takve klase. Stvaranje novih widgeta koji nisu dostupni u standardnim bibliotekama također zahtijeva stvaranje (definiranje) odgovarajuće klase, što je obično dugotrajan zadatak.

    Svaka klasa ima niz fiksnih karakteristika koje su zajedničke svim njezinim instancama (na primjer, popis postupaka povratnog poziva). Vrijednosti ovih karakteristika mogu varirati među samim objektima.

    Sve Xt klase tvore hijerarhiju. Ako je klasa B bliža vrhu hijerarhije od klase D, tada se B naziva osnovnom klasom D, a D se naziva izvedenom klasom (ili podklasom) B.

    Potklase nasljeđuju karakteristike svih svojih osnovnih klasa. To znači da instanca klase ima karakteristike ne samo svoje klase, već i atribute svih osnovnih klasa.

    U programima je svaka klasa identificirana varijablom koja ukazuje na odgovarajuću strukturu podataka. Ova varijabla se zove pokazivač na klasu. Podaci u ovoj strukturi popunjavaju se kada se Xt inicijalizira.

    Glavne klase widgeta:

    Objekt. Apstraktna klasa (klasa koja ne generira vlastiti objekt) koja se koristi kao korijen stabla svih objekata. Sadrži jednu podklasu:

    RectObj. Apstraktna klasa koja se koristi za definiranje nekih zajedničkih karakteristika potrebnih za funkcioniranje različitih tipova objekata (na primjer, za objekte koji nemaju prozor). Sadrži podklasu:

    Jezgra. Korijen stabla widget klasa koje imaju prozore. Ova klasa definira karakteristike koje su zajedničke svim objektima, kao što je veličina widgeta i njegov položaj na ekranu. Sadrži podklasu:

    Kompozitni. Widgeti koji pripadaju ovoj klasi mogu biti roditelji drugih objekata. Instance klase Composite definiraju sljedeće ponašanje za svoje podobjekte:

    * postavlja lokaciju "dijete" widgeta u skladu s određenim ograničenjima;

    * kada se uništi, oslobađa memoriju koju koriste podobjekti (kada se uništi widget klase Composite, svi njegovi “potomci” će biti prvi uništeni);

    * kontrolira izgled prozora svojih podređenih widgeta na ekranu;

    * kontrolira prijenos fokusa unosa između objekata.

    Composite klasa sadrži podklase:

    Ograničenje. Ova klasa je daljnje proširenje osnovne klase. Njegove instance imaju dodatne mogućnosti za kontrolu veličine i lokacije svojih potomaka. Na primjer, podobjekti se mogu postaviti posebnim redoslijedom: u nizu, u stupcu itd.

    Ljuska. Ovo je posebna klasa dizajnirana za interakciju s upraviteljem prozora. widget iz ove klase može imati samo jedno dijete. Klasa Shell sadrži podklase:

    NadjačajShell. To je važna podklasa klase Shell. Za prozor widgeta ove klase, atribut override_redirect postavljen je na True, tj. upravitelj prozora ga ne kontrolira. Prozori objekata ove klase u pravilu nemaju dodatke dodane od strane upravitelja prozora (naslov, okvir, standardne tipke), a koriste se uglavnom za kreiranje izbornika raznih vrsta.

    WMShel. Ovo je posebna podklasa klase Shell koja sadrži dodatna polja potrebna za interakciju s upraviteljem prozora. Sadrži:

    VendorShell. Ova je klasa namijenjena pružanju mogućnosti interakcije s posebnim upraviteljima prozora. Ova klasa sadrži podklase:

    TopLevelShell. Widgeti ove klase obično se koriste kao objekti ljuske stabla programskih objekata. Sadrži:

    ApplicationShell. Program obično može imati samo jednu instancu, koja pripada klasi ApplicationShell.

    TransientShell. Ova se klasa razlikuje od prethodne samo u značajkama interakcije s upraviteljem prozora. Prozori widgeta ove klase ne mogu se minimizirati (pretvoriti u ikonu). Ali ako se roditelj objekta klase TransientShell pretvori u ikonu, tada se prozor widgeta uklanja sa zaslona. Klasa TransientShell koristi se za stvaranje dijaloga.

    Svaka od klasa widgeta, a time i objekti stvoreni na temelju nje, imaju prilično velik broj parametara. U izrazima Xt oni se nazivaju "resursi". Xt nudi širok raspon alata za rad s njima.

    Dodatne Xt značajke

    Xt pruža mehanizam za rad s datotekama (i vanjskim uređajima općenito) u asinkronom načinu rada. Aplikacija može registrirati proceduru koja će biti pozvana kada podaci budu spremni ili kada se pojave pogreške čitanja/pisanja.

    Xt daje aplikaciji mogućnost izvođenja određenih radnji u određenim intervalima. Na primjer, povremeno prikazati trenutno vrijeme na ekranu u određenom prozoru itd. U takve svrhe koristi se poseban Xt mehanizam - mjerač vremena. Omogućuje poziv u određenom vremenskom intervalu posebnoj funkciji koju je odredio program.

    Xt pruža mogućnost izvođenja neke akcije kada je red događaja prazan. To se postiže registracijom posebne "radne" procedure koju će Xt pozvati ako je red događaja prazan. Takve se funkcije obično koriste za izvođenje raznih akcija i izračuna u vrlo kratkom vremenu.

    Svaka aplikacija, ako je potrebno, može modificirati uobičajeni ciklus primanja i distribucije (obrade) događaja - Xt pruža čitav niz procedura za rad s redom događaja.

    Xt ima mehanizam koji se zove akcelerator, koji vam omogućuje uvođenje ovisnosti o događaju i radnji. Akceleratori su slični akcijskim procedurama s tom razlikom da događaj (ili grupa događaja) koji se pojavljuje u jednom widgetu pokreće poziv odgovarajuće akcijske procedure za drugi objekt.

    Xt podržava nekoliko načina rada s widgetima. Dakle, program, koristeći postupke koje nudi Xt, može prikazati prozor, postaviti jedan ili drugi način rada za njega i zatvoriti prozor kada postane nepotreban. Ovi se postupci uglavnom koriste za stvaranje skočnih izbornika i dijaloških okvira. U pravilu, svi skupovi widgeta (na primjer, OSF/Motif) imaju svoje puno prikladnije postupke za kreiranje izbornika i dijaloga.

    Dodaci za Xt Xt je trenutno visoko standardiziran od strane X konzorcija, ali ne postoje standardi više razine. Popularan:

    *OSF/Motif Toolkit;

    * Set widgeta Athena;

    * OPEN LOOK Intrinsic Toolkit;

    * Interviews;

    * Tk/tcl.

    Najčešći i gotovo de facto standard vjerojatno bi se trebao smatrati OSF/Motif.

    Atena

    Athena Widget Set osigurava X Consortium kao dio standardne distribucije X-a. Athena je nastala kroz rad na osnovnim aplikacijama i uslužnim programima tijekom projekta Athena na MIT-u, što je rezultiralo sustavom X Window.

    Athena je u početku imala "ravnu" grafiku - svi gumbi, izbornici i drugi elementi sučelja nisu imali sjene, tj. bili ravni. Prije otprilike godinu dana izdan je AW3d - varijanta Athena Widgeta, u kojoj je ovaj nedostatak uklonjen.

    Motiv

    Open Software Foundation Motif (OSF/Motif) je paket koji uključuje upravitelj prozora, skup uslužnih programa za izvođenje raznih pomoćnih operacija i biblioteku objekata izgrađenu na temelju Toolkit Intrinsics.

    Motif podržava sve Xt klase, a time i resurse tih klasa, ali za bilježenje imena i klase resursa objekta koriste se konstante, počevši od prefiksa XmN odnosno XmC. Za bilježenje vrste izvora koriste se konstante s prefiksom XmR (umjesto XtR, usvojenog u Xt).

    Motif proširuje mnoge klase objekata koje nudi Xt. Konkretno, Motif podržava prilično velik skup klasa koje vam omogućuju stvaranje izbornika, klizača), gumba na koje se može kliknuti, elemenata za uređivanje itd.

    Osim toga, Motif pruža posebnu klasu objekata koji se nazivaju gadgeti - oni čine zasebnu klasu u Motifu, XmGadget, koja je podklasa klase RectObj. Također se mogu koristiti za stvaranje elemenata sučelja, ali imaju posebnost da nemaju vlastite prozore. Za crtanje, gadget koristi roditeljski prozor.

    Svaka klasa widgeta ima prilično širok izbor i naslijeđenih i dodatnih resursa specifičnih za nju. Omogućuju vam kontrolu važnih karakteristika objekata kao što su boja pozadine, položaj na zaslonu, font prikazanog teksta itd.

    Neke se klase Motif ne koriste za stvaranje instanci widgeta (takve se klase nazivaju apstraktnim klasama u terminologiji objektno orijentiranog programiranja). Oni sadrže najčešće atribute i metode potrebne za funkcioniranje različitih vrsta widgeta.

    Motif ima dvije glavne podklase objekata: XmPrimitive i XmManager (ranije je spomenuta klasa XmGadget). Obje ove klase su apstraktne. Prvi od njih nasljeđuje Core klasu i koristi se kao baza za objektne klase koje ne posjeduju druge objekte. Primjeri su gumbi na koje se može kliknuti, popisi itd. Klasa XmManager nasljeđuje klasu Constraint i koristi se za stvaranje objekata koji mogu imati i upravljati podređenim objektima.

    Klasifikacija objekata

    XmGadget klasa. Kada se stvore instance regularnih Motif objekata (widgeti), otvara se odgovarajući prozor. Ako program koristi mnogo widgeta, to dovodi do značajnog usporavanja aplikacije. Vrijeme se troši i na izradu prozora i na daljnji rad s njima. Ali lako je vidjeti da posjedovanje zasebnog prozora za svaki objekt uopće nije potrebno. Oznake, gumbi i mnogi drugi widgeti mogu se uspješno koristiti za crtanje prozora njihovih roditeljskih objekata. Nema prozora - nema potrebe ponovno kontaktirati poslužitelj, povećava se produktivnost i ne troši se dodatna memorija.

    Provodeći upravo ovu ideju, Motif programeri duplicirali su neke klase objekata, stvarajući dvije verzije - s prozorom i bez prozora. Verzije objekata koji nemaju prozore svoju hijerarhiju izvode iz apstraktne klase - XmGadget, i imaju isto opće ime. Ova posebna klasa objekata nasljeđuje svoje karakteristike od klase RectObj, koja je pak apstraktna klasa koja sadrži osnovne mehanizme za kontrolu geometrije objekata.

    Osim činjenice da gadgeti nemaju vlastite prozore, nametnuta su im i druga ograničenja. Stoga se za njih ne mogu definirati rukovatelji događajima i tablice prevođenja. Nadalje, gadgeti ne mogu imati objekte potomke. Inače, funkcionalnost gadgeta i pripadajućeg widgeta je ista, pa ih nećemo posebno opisivati, samo ćemo ih navesti.

    Klasa XmGadget sadrži podklase:

    * XmArrowButtonGadget.

    * XmLabelGadget.\hfil

    * XmPushButtonGadget.

    * XmToggleButtonGadget.

    * XmCascadeButtonGadget.

    * XmSeparatorGadget.

    XmPrimitivna klasa. Ova apstraktna klasa sadrži:

    XmArrowButton. Instanca klase je gumb s nacrtanom strelicom smjera. Gumb se može kliknuti pomoću miša ili tipkovnice. Rub kontrolnog elementa može imati sjenu, koristi se za prikaz različitih stanja u kojima objekt može biti: slobodan ("otpušten") i pritisnut.

    XmLabel. Predstavnici ove klase (oznake) jedan su od najjednostavnijih Motif objekata. Oznake su dizajnirane za prikaz informacija: tekst ili slike (bitmape).

    XmPushButton. Predstavnici ove klase su pravokutni gumbi na koje se može kliknuti u koje se može uvući red teksta.

    Ako je objekt odabran, na primjer, pritiskom lijeve tipke miša dok je kursor na objektu, mijenja se boja obruba widgeta, što stvara efekt klika. Nakon otpuštanja gumba, boja obruba se vraća. Također možete kliknuti na takav widget s tipkovnice - da biste to učinili, morate dati objektu fokus unosa i pritisnuti razmaknicu (obično).

    XmDrawnButton. Objekti ove klase slični su klikabilnim gumbima s jedinom razlikom što se u njima ne crta tekst, već proizvoljna slika (pikselna mapa).

    XmToggleButton. Objekti ove klase su mali gumb, pored kojeg se u pravilu nalazi tekst objašnjenja. Gumb može biti u dva stanja: uključen i isključen (tj. to je prekidač). Obilježeni su promjenom izgleda upravljačkog elementa.

    Predstavnik ove klase koristi se za stvaranje takozvanih "tipki za provjeru", koje bi bilo pametnije nazvati "kvačicama", i "radio tipki" - prekidača s više položaja. Prvi se koriste za postavljanje logičkih parametara, tj. imajući dva značenja. Potonji služe sličnoj svrsi, ali imaju mnogo značenja u ovom slučaju konačan i sadrži više od dva elementa. U ovom slučaju, oblik grafičkog prikaza objekta tipa XmToggleButton ovisi o tome koristi li se kao “kvačica” ili “radio” gumb.

    U pravilu, widgeti klase XmToggleButton kombiniraju se u strukture koje se nazivaju potvrdni okvir i radio okvir. Ovi blokovi pak predstavljaju modifikacije objekata klase XmRowColumn opisane u nastavku.

    XmCascadeButton. Objekti ove klase predstavljaju gumbe na koje se može kliknuti i koriste se pri kreiranju izbornika. Kada kliknete na objekt, pojavljuje se podizbornik sljedeće razine.

    XmList. Predstavnici ove klase neki su od najzanimljivijih Motif objekata. Osmišljeni su za prikaz popisa nizova i daju korisniku mogućnost izvođenja različitih radnji s elementima popisa. Korisnik može odabrati jedan ili više redaka predstavljenih u ovom objektu, a oni su označeni. Osim toga, ako popis ima fokus unosa, tada je jedan od njegovih elemenata istaknut točkastim okvirom. Ovaj okvir se naziva pokazivač liste.

    XmScrollBar. Objekti ove klase - trake za pomicanje (trake za pomicanje), u pravilu se koriste u kombinaciji s drugim objektima, kao što su popis (XmList), tekst (XmText) i drugi. Traka za pomicanje dizajnirana je za pomicanje područja ako se informacije prikazane u njemu (popis, tekst, slika itd.) ne mogu u potpunosti prikazati u prozoru. Objekti klase XmScrollBar predstavljaju traku (vodoravnu ili okomitu), duž čijih rubova se nalaze tipke sa strelicama. Klikom na bilo koji od njih pomiče se u smjeru označenom strelicom. Na samoj traci za pomicanje nalazi se klizač (slider) - pravokutnik označen bojom. Ako ga "zakačite" mišem i "vučete", to u pravilu također dovodi do pomicanja područja.

    XmSeparator. Objekti ove klase - separatori - koriste se, u pravilu, za poboljšanje izgled prozori aplikacija. Ovaj widget je okomita ili vodoravna pruga (linija) koja odvaja grupe objekata. Na primjer, razdjelnici se mogu koristiti u izbornicima za odvajanje nekih naredbi od drugih, u dijalozima - za izolaciju grupe pritisnutih gumba od drugih elemenata itd.

    XmText. Objekti ove klase omogućuju vam prikaz jednog ili više redaka teksta. Ako linije ne stanu u prozor, tada se slika može pomicati lijevo i desno te gore i dolje. Tekst se može uređivati ​​- način uređivanja se može promijeniti odgovarajućom postavkom resursa objekta.

    Motif nudi niz praktičnih postupaka koji vam omogućuju izvođenje širokog spektra operacija s widgetom ove klase: dobivanje i mijenjanje podataka, kopiranje odabranog dijela podataka u međuspremnik sustava (međuspremnik) i tako dalje.

    XmTextField. Objekti ove klase omogućuju pregled i uređivanje jednog retka teksta.

    XmManager klasa. Ova klasa je apstraktna, tj. ne koristi se za stvaranje objekata. Definira osnovne parametre potrebne za izgradnju widget klasa koje mogu manipulirati drugim objektima. Ti su resursi potrebni za ispravan prikaz podređenih widgeta i kontrolu hoće li dobiti fokus unosa.

    Klasa XmManager sadrži:

    XmBulletinBoard. Objekti ove klase mogu imati podobjekte koji se na bilo koji način postavljaju u prozor. Koordinate prozora podređenih widgeta mjere se u koordinatnom sustavu čije je ishodište u gornjem lijevom kutu prozora objekta klase XmBulletinBoard.

    Kada promijenite veličinu objekta, na primjer, pomoću miša, početna lokacija podobjekata se ili ne mijenja ili se pomiču tako da se izbjegne međusobno presijecanje. Ako se prozor widgeta smanji, dijelovi podobjekata mogu postati nevidljivi.

    Klasa XmBulletinBoard sadrži:

    XmForm. Posebna značajka objekata ove klase (formi) je mogućnost kontrole lokacije njihovih podobjekata postavljanjem veza između samog obrasca i podređenog widgeta, kao i između samih podobjekata.

    Za svaki podređeni widget možete odrediti je li njegov lijevi, desni, donji ili gornji rub pričvršćen. Dakle, ako su lijevi i desni rub podobjekta spojeni s desnim rubom obrasca, tada će udaljenost od njih do ovog ruba uvijek ostati ista. Ako se veličina forme smanji, podobjekt će se pomaknuti ulijevo, a ako se veličina poveća, onda će se pomaknuti udesno. Možete vezati jedan podobjekt za drugi. Zatim će promjena položaja podobjekta za koji je widget vezan dovesti do pomicanja vezanog objekta tako da se održi udaljenost između njih.

    Prilikom promjene veličine obrasca, sve veze između njegovih podobjekata su sačuvane.

    XmSelectionBox. Objekti ove klase ("blokovi odabira") predstavljaju primjer složenog widgeta i uključuju popis koji se može pomicati gdje korisnik može odabrati element koji mu je potreban, kao i tekstualno polje (objekt XmTextField) u kojem se nalazi odabrana stavka na popisu prikazano. Korisnik može uređivati ​​napravljeni odabir. Popis i tekstualno polje mogu imati naljepnice s objašnjenjima, navedene pomoću odgovarajućeg widgeta klase XmLabel. Objekt klase XmSelectionBox također uključuje tri gumba koja se mogu pritisnuti (objekti XmPushButton). Prema zadanim postavkama, oni su označeni kao "U redu", "Odustani" i "Pomoć". I na kraju, postoji još jedan element - gumb koji se može kliknuti, a prema zadanim postavkama naziva se "Primijeni". U početku se ovaj podobjekt stvara, ali nije uključen u popis upravljanih widgeta.

    Koristeći blok za odabir, korisnik može odabrati podniz koji mu je potreban na popisu ili ga unijeti u tekstualno polje. Postavke se potvrđuju pritiskom na gumb "Ok".

    Klasa XmSelectionBox uključuje:

    XmCommand. Objekti ove klase daju korisniku mogućnost odabira željene naredbe pomoću popisa već unesenih naredbi ili unosom naredbe u tekstualno polje posebno predviđeno za to u widgetu.

    XmFileSelection. Objekti ove klase omogućuju pregled trenutnog sadržaja različitih direktorija i odabir određene datoteke.

    Objekti ove klase sadrže elemente:

    * 2 tekstualna polja: "Filter" i "Odabir" (objekti klase XmNextField);

    * 2 popisa: "Imenici" i "Datoteke" (objekti klase XmList);

    * 4 pritisnuta gumba: "U redu", "Filter", "Odustani" i "Pomoć" (objekti klase XmPushButton);

    Tekstualno polje "Filter" specificira masku (predložak) za odabir iz cijelog skupa datoteka određenog podskupa koji zadovoljava uvjet naveden u ovom polju - podudaranje s predloškom - upravo je taj podskup prikazan na popisu "Datoteke". Popis "Imenici" prikazuje poddirektorije trenutnog direktorija. Tekstualno polje "Odabir" prikazuje datoteku (njezin naziv) odabranu na listi "Datoteke", au istom tekstualnom polju korisnik može ručno unijeti puni naziv datoteke koja mu je potrebna. Četiri gumba koja se mogu pritisnuti koriste se za izvođenje različitih radnji:

    Ok - odaberite navedenu datoteku;

    Filter - ažuriranje popisa datoteka prikazanih u tekstualnom polju "Datoteke" u skladu s trenutnom maskom;

    Odustani - zatvara prozor widgeta, nema odabira datoteke;

    Pomoć - poziv u pomoć.

    XmMessageBox. Objekti ove klase namijenjeni su pružanju poruka korisniku koje se pojavljuju tijekom rada programa. Ovaj widget je složen. Ima područje u kojem se prikazuje redak teksta (poruka) i posebna ikona koja karakterizira vrstu poruke. Osim toga, objekt ima tri gumba na koja se može kliknuti. Prema zadanim postavkama označeni su: "U redu", "Odustani" i "Pomoć".

    XmDrawingArea. Objekti ove klase daju programu prozor za crtanje i prikaz informacija. Sama klasa ne daje parametre koji bi se mogli izravno koristiti za prikaz grafike. Ali popisi postupaka povratnog poziva dostupnih u ovoj klasi omogućuju primanje obavijesti o potrebi ponovnog crtanja prozora widgeta i primanju fokusa unosa.

    XmFrame. Objekti ove klase koriste se za isticanje nekih objekata od drugih tako što ih okružuju okvirom. Osobitost ove klase widgeta je da mogu imati samo jedan podobjekt i upravljati njime.

    XmPanedWindow. Objekti ove klase mogu kombinirati heterogene widgete. Subobjekti su odvojeni jedan od drugog, a između njih je postavljen poseban element koji se naziva krilo. Izgleda kao mali kvadrat i koristi se za promjenu veličine podređenih widgeta. Dakle, ako objekt klase XmPanedWindow ima dva podobjekta, tada možete učiniti sljedeće: mišem “zakačiti” krilo i “vući” ga u željenom smjeru (dolje-gore ili lijevo-desno) - dok uzdužna veličina (veličina u smjeru u kojem je "vučeno" krilo) jedan dječji objekt će se povećati "nauštrb" drugog (veličina drugog će se smanjiti), poprečne dimenzije obaju podobjekata bit će sačuvane. "Bočna" veličina objekta klase XmPanedWindow određena je maksimalnom sličnom veličinom njegovih podobjekata.

    XmRowColumn. Objekti ove klase mogu kombinirati heterogene widgete. Podobjekti su raspoređeni određenim redoslijedom – u obliku matrice. widget klase XmRowColumn osnova je za kreiranje sljedećih objekata:

    potvrdni okvir - "blok gumba koji se mogu provjeriti" (tj. objekti klase XmToggleButton ili klase XmToggleButtonGadget); Među gumbima dostupnim u "bloku" nekoliko ih se može odabrati ("omogućeno") u isto vrijeme;

    radio box - “blok radio gumba” (tj. objekti XmToggleButton ili XmToggleButtonGadget); Među gumbima dostupnim u "bloku", samo jedan se može odabrati ("omogućen") u isto vrijeme;

    padajući izbornik - "padajući izbornik" - prozor podizbornika koji se pojavljuje nakon odabira gumba u izborniku najviše razine (traka izbornika); stavke izbornika raspoređene su okomito;

    izbornik opcija - gumb s pripadajućim izbornikom; kada kliknete na gumb, pojavljuje se prozor izbornika iz kojeg se odabire jedna vrijednost parametra; stavke izbornika raspoređene su okomito;

    skočni izbornik - "skočni izbornik", koji se obično poziva klikom na treću tipku miša; prozor izbornika pojavljuje se na mjestu gdje se nalazi njen kursor; stavke izbornika raspoređene su okomito;

    traka izbornika - izbornik najviše razine koji sadrži niz gumba (objekti klase XmCascadeButton ili XmCascadeButtonGadget), koji se koriste za pozivanje raznih podizbornika (padajući izbornik); Stavke izbornika raspoređene su vodoravno.

    XmScale. Objekt ove klase je pravokutno područje koje sadrži klizač za fiksiranje, pomoću kojeg korisnik može odabrati vrijednost parametra povezanog s objektom iz određenog raspona.

    XmScrolledWindow. Objekt ove klase pruža mogućnost prikaza i pregleda nekih informacija (tekst, slika, popis). Takav widget u pravilu sadrži podobjekt u kojem se nalaze podaci namijenjeni pregledu (to može biti objekt klase XmText, XmDrawingArea itd.) Za više pogodno gledanje podaci mogu koristiti vodoravne i okomite trake za pomicanje.

    Ova klasa sadrži podklasu

    XmMainWindow. Objekti ove klase predstavljaju zasebnu komponentu sučelja, koja se obično sastoji od sljedećih dijelova:

    * izbornik najviše razine,

    * naredbeni prozor,

    * "radni" prostor,

    * prozor poruke,

    * i dvije trake za pomicanje (vodoravnu i okomitu).

    Podobjekti se mogu odvojiti separatorima.

    XmMenuShell i XmDialogShell klase. Motif pruža objektnu klasu XmMenuShell za kreiranje raznih izbornika. Ova klasa nasljeđuje od klase OverrideShell (od Xt).

    Kao što je već spomenuto pri opisivanju Xt-a, klasa TransientShell koristi se za stvaranje programskih objekata koji, s jedne strane, izravno kontaktiraju upravitelj prozora, a s druge strane imaju značajke koje ih razlikuju od običnih prozora najviše razine. Glavna od ovih značajki je da se widget klase TransientShell ne može minimizirati. Ali uklanjaju se sa zaslona ako se roditelj pretvori u ikonu. Ova vrsta widgeta obično se koristi za stvaranje prozora pomoćnih programa.

    Motif koristi navedena svojstva klase TransientShell i proširuje ih u izvedenu klasu XmDialogShell. Potonji služi kao objekt ljuske dijaloga.

    Struktura dijaloškog okvira u Motifu može se prikazati na sljedeći način:

    Objekt klase XmDialogShell

    Objekt podklase XmManager, kao što je XmBulletinBoard ili XmForm

    Razni kontrolni elementi: gumbi, polja za unos teksta itd.

    Knjižnica ima skup postupaka koji olakšavaju stvaranje opisanog dizajna.

    Dijalozi

    Kao što je navedeno, dizajn dijaloškog okvira u Motifu je sljedeći: prvo postoji objekt klase XmDialogShell, koji zatim uključuje widget jedne od podklasa klase XmManager; ovaj se objekt koristi za hostiranje različitih objekata.

    Knjižnica nudi posebne postupke za stvaranje dijaloga. Razlikuju se po vrsti widgeta, koji je dijete objekta klase XmDialogShell.

    Izlaz teksta

    Knjižnica ima prilično velik broj widgeta koji se koriste za prikaz tekstualnih informacija. To su XmLabel s potklasama, XmText itd. Za specificiranje mogućih fontova koji se mogu koristiti prilikom crtanja linija koristi se resurs XmNfontlist. To je tipa XmFontlist. Njegovo značenje je skup parova "font"/"oznaka fonta".

    Oznake (naljepnice) imaju za cilj učiniti programe neovisnima o određenim fontovima koje odredi korisnik. To se radi na sljedeći način: aplikacija je stvorena na takav način da sve funkcije koje rade s redcima teksta ne sadrže same fontove, već njihove oznake. Kada se zadatak kompilira i pokrene, utvrđuje se podudarnost između oznaka i određenih fontova. Potonji se koriste za crtanje.

    Motif ima alate ne samo za rad s nizovima tekstova prikazanih u jednom fontu, već vam također omogućuje rad s objektima kao što su "kompozitni nizovi" - tj. retke teksta koji koriste mnogo fontova. Postoji skup alata za stvaranje takvih nizova, rad s njima i njihovo pretvaranje u redovne nizove "s jednim fontom".

    Rad sa slikama

    Sam Motif radi sa slikama, predstavljajući ih u internom formatu, koji je jednostavna bitmapa, koja se specificira pomoću strukture XImage.

    Kontrolirajte fokus unosa

    Motif podržava dva modela ulaznog fokusa. Prvi od njih je implicitan (pokazivač): fokus se daje na widget u koji se pomiče kursor miša. Drugi model je eksplicitan: za prijenos fokusa potrebno je postaviti kursor miša u prozor widgeta i kliknuti lijevu tipku miša. Kada widget ili gadget dobije fokus unosa, njegov rub je istaknut.

    Uz ove modele prosljeđivanja i primanja fokusa unosa, postoji i mehanizam za prijenos fokusa unosa s jednog widgeta na drugi. Objekti se mogu kombinirati u grupe - to se može učiniti postavljanjem potrebnih vrijednosti odgovarajućih resursa ili se može prepustiti sustavu. U potonjem slučaju, Motif automatski povezuje widget koristeći ugrađena pravila. Tako, na primjer, objekt klase XmMessageBox sadrži tri skupine: jedna je "glavni" dijaloški objekt (XmForm klasa), druga je "oznaka" u kojoj se poruka prikazuje korisniku, treća je pritisnuti gumbi.

    Fokus unosa prenosi se i s jednog objekta (u grupi) na drugi i sa grupe na grupu.

    Prijenos fokusa unutar grupe vrši se pomoću tipki sa strelicama, a iz grupe u grupu pomoću tipke tab (zato se i same grupe nazivaju Tab grupe). Kada se grupi dodijeli fokus, fokus unosa u toj grupi daje se prvom objektu koji može primiti fokus (objekt se može spriječiti da primi fokus postavljanjem odgovarajućeg resursa na odgovarajuću vrijednost). Redoslijed kojim se fokus unosa prenosi unutar grupe isti je kao i redoslijed kojim se stvaraju widgeti. U tom slučaju obično kombinacija tipki pomiče fokus u suprotnom smjeru.

    Motif također nudi brojne rutine koje se mogu koristiti za kontrolu fokusa unosa.

    Lesstif Nedavno je objavljen besplatni analog Motifa, potpuno kompatibilan s njim. Zove se Lesstif. Besplatno je dostupan u izvornom obliku i kompiliran za razne platforme na internetu.

    Tk/tcl

    Tcl - čitaj: - označava: "komandni jezik alata" (instrumentalni komandni jezik). Sastoji se od dva dijela: samog jezika i biblioteke.

    Jezik tcl ima jednostavnu sintaksu i lako ga je programirati. U svom izvornom obliku tcl je tumač. Omogućuje stvaranje novih konstrukcija, poput funkcija ili programa, što vještom programeru daje moćan alat za razvoj ne samo konačnih aplikacija, već i vlastitog proširenja TCL jezika, stvarajući i održavajući vlastiti stil.

    Biblioteka tcl pruža mogućnost korištenja interpretera jezika TCL u aplikacijskim programima, te stoga uključuje skripte napisane u jeziku naredbi TCL u programe. Knjižnica sadrži leksički analizator za TCL jezik, funkcije koje implementiraju ugrađene TCL naredbe i omogućuje vam da TCL naredbama pridružite korisničke potprograme (pozive funkcija). Ovaj raspored je moguć i za C i za C++.

    Tk je alat kompatibilan s Motifom za razvoj grafičkih korisničkih sučelja u okruženju X Window. Uz standardno sučelje za C i C++, uključuje sučelje za tcl, pružajući mogućnost korištenja Tk alata unutar okruženja tumača naredbi tcl. To znači da osim standardnog programiranja u C i C++, dijelovi sučelja aplikacije mogu biti implementirani u obliku skripti na TCL jeziku i ti dijelovi sučelja (dijalozi, izgledi ekrana itd.) mogu se uređivati ​​dinamički, tijekom rad konačnog programa, korištenjem tcl naredbi

    Okruženje prozora želja omogućuje izradu aplikacija s grafičkim korisničkim sučeljima koristeći samo TCL jezik.

    Slični dokumenti

      Programski sustavi i njihove grafičke mogućnosti. Razvoj multimedijskog tečaja koji promiče učinkovito učenje učenika osnovnih škola teme "Grafičke mogućnosti programskog jezika" (na primjeru programskih jezika Basic i Pascal).

      diplomski rad, dodan 29.12.2010

      Grafičke komponente zaslon, sistemski objekti i funkcije. Sustav sredstava za interakciju korisnika s uređajem. Povijest grafičkih korisničkih sučelja osobnih računala, njihova klasifikacija. X prozorski sustav.

      prezentacija, dodano 22.05.2012

      Programiranje i osnovne grafičke mogućnosti. Osnovne strukture za pogled i dva konstruktora s argumentima. Daljnje koordinate točke i inicijalizacija nove. Pohranjivanje i mijenjanje koordinata gornjeg lijevog kuta pravokutnika.

      laboratorijski rad, dodan 01.12.2011

      Vektorska računalna grafika. Grafičke primitive. Grafičke mogućnosti programskog jezika Pascal. Smjernice za učenje grafike u programskom jeziku Pascal. Crtanje grafova funkcija.

      kolegij, dodan 13.06.2007

      Izrada programa za operativni sustav Windows korištenjem VisualC++ (6.0, .NET). Razmatranje osnova programskog modeliranja rada uređaja (električno kuhalo za vodu). Pravila za kreiranje klasa uređaja i njegovog grafičkog sučelja.

      kolegij, dodan 03.06.2014

      Računalna grafika. Predstavljanje grafičkih informacija na računalu. Grafički formati. Grafički urednici. Vektorska grafika. CorelDraw. Karakteristike programa i sučelja. Tehnološke mogućnosti i korištenje programa CorelDraw.

      kolegij, dodan 19.05.2007

      Uloga distribuiranog računalni sustavi u rješavanju suvremenih problema. DVM sustav alata za razvoj paralelnih programa. Alati za konstruiranje formalnog modela grafičkog sučelja. Zahtjevi za grafičko sučelje DVM sustava.

      kolegij, dodan 15.10.2010

      Bit programiranja u Delphi 7 okruženju i njegovim osnovnim grafičkim mogućnostima. Struktura offline prevedenog softverskog modula i njegova načela. Osnovne tehnike rada s grafičkim postupcima, konstruiranje luka, kružnice i elipse.

      kolegij, dodan 16.12.2011

      Područja primjene računalne grafike. Vrste računalne grafike. Rezolucija boja i modeli boja. Softver za stvaranje, pregled i obradu grafičkih informacija. Grafičke mogućnosti programa za obradu teksta, grafički uređivači.

      test, dodan 07.06.2010

      Evolucija grafičkih korisničkih sučelja. X Window System i Window Managers. Opis KDE i GNOME radne površine i aplikacija. Pregled osnovnih principa organizacije sučelja u Windows sustav, opis njegovog aplikacijskog programskog paketa.

    Pravilo 2: Smanjite opterećenje korisnika

    Pravilo 3: Neka sučelje bude kompatibilno

    Smjernice

    Program Tidy Start Menu

    Zaključak

    Književnost

    Uvod

    “Zlatno pravilo dizajna je: “Nikada ne činite drugima ono što su oni učinili vama.” Upamtite što vam se ne sviđa u softveru koji koristite i nemojte raditi isto u programu na kojem radite. ”

    Tracy Leonard

    Zašto biste trebali slijediti načela dizajna korisničkog sučelja?

    Softver mora biti razvijen uzimajući u obzir zahtjeve i želje korisnika - sustav se mora prilagoditi korisniku. Zbog toga su načela dizajna toliko važna.

    Korisnici računala mogu imati uspješna iskustva koja ulijevaju povjerenje u njihove sposobnosti i grade visoko samopoštovanje pri radu s računalom. Njihovo djelovanje s računalom može se okarakterizirati kao "uspjeh rađa uspjeh". Svako pozitivno iskustvo s programom omogućuje korisniku da proširi svoje poznavanje softvera i poveća svoju razinu kompetencije. Dobro osmišljeno sučelje, poput dobrog učitelja i udžbenika, osigurava plodnu interakciju između korisnika i računala. Uspješna sučelja čak mogu pomoći osobi da izađe iz uobičajenog raspona programa koje koristi i otkrije nove, produbi svoje razumijevanje o tome kako sučelja i računala rade.

    Načela dizajna sučelja su koncepti i pogledi visoke razine koji se mogu koristiti u dizajnu softvera. Morate odrediti koji je princip najvažniji i najprihvatljiviji za vaš sustav.

    Pri započinjanju projektiranja potrebno je istaknuti najvažniji princip koji će biti odlučujući pri traženju kompromisa. Pokušaj poštivanja svih načela dizajna može dovesti do toga da se u nekim situacijama ne isplati i negativno utječe na konačni rezultat. Načela su vodič za djelovanje.

    Tri principa dizajna korisničkog sučelja formulirana su na sljedeći način:

    1)korisnička kontrola sučelja;

    2) smanjenje opterećenja korisničke memorije;

    3) dosljednost korisničkog sučelja.

    Gdje pronaći načela dizajna korisničkog sučelja

    Hansen je predstavio prvi popis principa dizajna. Načela su:

    1) poznavati korisnika;

    2) smanjiti pamćenje;

    3) optimizirati poslovanje;

    4) otkloniti greške.

    Mnogi veliki proizvođači operativnih sustava objavljuju relevantne priručnike i upute kada puštaju svoje nove proizvode na tržište. Ove publikacije otkrivaju principe pristupa dizajnu sučelja. Priručnike je proizvela tvrtka Apple Computer, Inc. (1992), IBM Corporation (1992), Microsoft Corporation (1995) i UNIX OSF/Motif (1993).

    Čitatelji mogu koristiti ove publikacije kao pomoć u nastavi. Terminologija sučelja može se razlikovati između priručnika, ali fokus materijala, razina složenosti i opisani principi korisničkog sučelja isti su za sve knjige.

    Važnost slijeđenja načela

    "Nekompatibilnost sučelja može koštati veliku tvrtku milijune dolara u gubitku produktivnosti i povećanih troškova podrške." - Jessie Briest.

    Ova se načela primjenjuju na sav softver i hardver, u svim vrstama i stilovima sučelja. Razvijani su dosta dugo: provodila su se istraživanja na području softverskog sučelja, provodio se razvoj, anketirani su korisnici mnogih računalnih platformi, uključujući Macintosh i PC.

    Ova su načela izdržala test vremena i pojavu novih računalnih tehnologija. Jakob Nielsen je primijetio: "Principi će ostati temeljni čak i ako program ima futuristički 3D dizajn s DataGloveom za unos, prepoznavanje pokreta i video slike uživo. Oni će biti relevantni jer izražavaju osnovnu ideju dijaloga sa strojem koji koristi naredbe.”

    Tumačenje ovih načela ovisit će o hardveru, operativnom sustavu, komponentama korisničkog sučelja i njegovim zadacima. Često poslovne odluke nadjačavaju korištenje načela dizajnera. Modeli korisnika i dizajnera također su različiti i utječu na to kako će se principi primijeniti. U nekim važnim fazama razvoja projekta može se pojaviti pitanje: "Što se dalje događa?" Odgovor bi trebao biti: "Što god korisnik želi!"

    Odluku o odabiru optimalnih principa dizajna sučelja trebali bi zajednički razviti svi članovi dizajnerskog tima. Ova bi rješenja trebala pomoći u poboljšanju mogućnosti kupnje i razvoja softverskih proizvoda.

    Pravila dizajna korisničkog sučelja

    "Neka bude jednostavnije, ali ne i primitivnije."

    Albert Einstein

    Pravilo 1: Dajte kontrolu korisniku

    Iskusni dizajneri omogućuju korisnicima da riješe neke probleme po vlastitom nahođenju. Arhitekti, nakon završetka složenog kompleksa zgrada, moraju između njih postaviti staze za pješake. Još ne znaju točno gdje će ljudi prelaziti preko stranica. Stoga se staze nikada ne postavljaju istovremeno s izgradnjom zgrada. Na prostorima između kuća postavljeni su znakovi s natpisom: „Molimo hodajte po travi“. Nakon nekog vremena vraćaju se građevinari i tek sada, prema “volji” stanovništva, asfaltiraju utabane staze.

    Načela koja korisniku daju kontrolu nad sustavom:

    1) mudro koristite načine rada;

    2) pružiti korisniku mogućnost izbora: rad s mišem, ili tipkovnicom, ili kombinacijom oba;

    3) dopustiti korisniku da usredotoči pozornost;

    4) pokazati poruke koje će mu pomoći u radu;

    5) stvoriti uvjete za hitne i povratne radnje, kao i povratne informacije;

    6) osigurati odgovarajuće staze i izlaze;

    7) prilagoditi sustav korisnicima različitih razina obuke;

    8) učiniti korisničko sučelje razumljivijim;

    9) dati korisniku priliku da prilagodi sučelje prema svojim željama;

    10) dopustiti korisniku da izravno manipulira objektima sučelja;

    Mudro koristite načine rada

    Načini rada nisu uvijek loši. Potrebno je dopustiti osobi da odabere načine koji su mu potrebni. Sučelje bi trebalo biti toliko prirodno da se korisnik osjeća ugodno raditi s njima. Korisnik ne razmišlja o prebacivanju na način umetanja ili ponovnog pisanja kada radi u programu za obradu teksta - to je sasvim racionalno i prirodno.

    Dopustite osobi da koristi miš i tipkovnicu

    Sposobnost rada s tipkovnicom koristeći tipkovnicu umjesto miša. To znači da će korisniku biti lakše raditi, samo ga ili ne može koristiti ili ga nema. Alatne trake dizajnirane su da ubrzaju vaš rad kada koristite miš. Međutim, kada radite s tipkovnicom, do njih se ne može doći - za takve slučajeve predviđeni su "padajući" izbornici.

    Omogućite korisniku promjenu pažnje

    Nemojte prisiljavati korisnike da završe započete sekvence radnji. Dajte im izbor - poništiti ili spremiti podatke i vratiti se tamo gdje su stali. Neka korisnici imaju priliku kontrolirati proces rada u programu.

    Prikaži poruke s objašnjenjima i tekstove

    U cijelom sučelju koristite izraze jednostavne za korištenje. Oni ne moraju znati o bitovima i bajtovima!

    Trebali biste odabrati pravi ton u porukama i pozivnicama. Jednako je važno osigurati se od problema i grešaka. Loša terminologija i netočan ton dovest će do toga da korisnici sami sebe okrivljuju za pogreške koje se događaju.

    Pružite trenutnu i poništivu akciju i povratnu informaciju

    Svaki programski proizvod mora uključivati ​​funkcije UNDO i REDO. Korisnik mora biti obaviješten da ovu radnju ne može otkazati, a ako je moguće dopustiti mu alternativno djelovanje. Stalno obavještavajte osobu o tome što se trenutno događa.

    Omogućite jasne putove i izlaze

    Korisnici bi trebali uživati ​​u radu sa sučeljem bilo kojeg softverskog proizvoda. Čak ni sučelja koja se koriste u industriji ne bi trebala zastrašivati ​​korisnika; on se ne bi trebao bojati pritisnuti gumbe ili otići na drugi zaslon. Internetska invazija pokazala je da je navigacija glavna interaktivna tehnika na internetu. Ako korisnik razumije kako pristupiti željenoj stranici na WWW-u, tada postoji 80 posto šanse da će razumjeti sučelje. Ljudi vrlo brzo uče tehnike preglednika.

    Prilagodite korisnike s različitim razinama vještina

    Nemojte "žrtvovati" iskusne korisnike za dobrobit običnih korisnika. Potrebno im je omogućiti brzi pristup funkcijama programa. Nemojte ih zamarati s višestrukim koracima za izvođenje radnje ako su navikli koristiti jednu makro naredbu.

    Učinite korisničko sučelje "transparentnim"

    Korisničko sučelje je "mitski" dio softverskog proizvoda. Kod dobrog projekta korisnici niti ne osjete njegovu “prisutnost”. Ako je loše dizajniran, korisnici će morati uložiti čak i mnogo truda u učinkovito korištenje softverskog proizvoda. Svrha sučelja je pomoći ljudima da se osjećaju kao da su "unutar" računala, slobodno manipuliraju i rade s objektima. Ovo se zove "transparentno" sučelje!