• Návrh grafického uživatelského rozhraní. Vývoj školícího bloku na disciplínu "databáze a systémy pro správu databází"

    Vytváření grafického uživatelského rozhraní, během kterého chcete umístit grafické prvky, vyberte celková struktura a tok aplikací, povzbuzuje programátora, aby se do určité míry stal umělcem. Neexistují žádná standardní pravidla, která by mohla pomoci s vytvářením prezentací, umísťováním prvků a organizováním struktury. Dobré grafické uživatelské rozhraní je považováno za umělecké dílo. Vzhledem k tomu, že návrh rozhraní je menší věda než umění, neexistují v této oblasti žádná tvrdá a rychlá pravidla. Příliš mnoho možností je určeno povahou aplikace, uživateli a kontextem.

    Existuje však celá řada praktické rady, kterým by se měli vývojáři řídit pro usnadnění návrhu rozhraní.

    ¦ Je třeba se vyhnout složitým strukturám (jako je strom) pro propojení různých nabídek. Nejlepší je zahrnout do jednoho pruhu nabídek maximálně šest nabídek, z nichž každá nebude obsahovat více než šest možností.

    ¦ Objekty musí mít konzistentní hodnotu. Chcete-li například aktivovat všechny ikony, poklepejte myší. Nějaký moderní rozhraní nesplňují toto doporučení a obsahují ikony, které se projeví až po odtažení uživatelem

    namítat proti nim. Posuvníky by se měly používat pouze pro posouvání, a pokud se používají ikony knihovny, je třeba je pečlivě zkontrolovat, aby bylo zajištěno, že například pro tisk bude vždy použita ikona tiskárny.

    ¦ Při aktivaci všech ikon, jak je uvedeno výše, dvakrát klikněte myší. A pro získání podobného výsledku pro ikony objektů, které se aktivují jediným kliknutím myši, se doporučuje naprogramovat také dvojité kliknutí. Mnoho možností, jako jsou ty z nabídky Ovládacího panelu, vypadá jako ikony, ale jedná se o objekty, které se aktivují jediným kliknutím myši. Měli byste předvídat možné chování uživatelů při práci s takovými objekty (tj. předpokládat, že na ně dvakrát kliknou myší) a pomoci jim dosáhnout požadovaného výsledku.

    ¦ Nabídky rozhraní by měly odrážet aktuální stav systému. Jedním z hlavních principů, kterými se řídí většina tvůrců grafických uživatelských rozhraní, je poskytnout přístup ke všem nástrojům rozhraní bez ohledu na akce uživatele. Spodní pravidlo dobře souhlasí s jednoduchými aplikacemi, ale pro složitější je méně užitečné.

    ¦ Prvky, které jsou společné pro různá menu, by měly být umístěny na jednom místě. Například tlačítka OK a Storno by měla být vždy umístěna stejně vůči sobě navzájem a zabírat stejné místo v různých dialogových oknech.

    ¦ Neměli byste usilovat o konzistenci položek nabídky, pokud to neodpovídá názoru uživatelů. Uživatelé například zjistí, že přetažením souboru z jedné složky do druhé umístěné na stejném zařízení dojde k přesunutí souboru do druhé složky.

    Také se domnívají, že přetažením souboru na jiné zařízení se tam vytvoří kopie originálu. Z toho vyplývá, že realizace funkce odtahu bude nedůsledná, tzn. různé v různých případech. To je však přání uživatelů, se kterým se musí počítat. Snaha o konzistenci je pouze doporučením, nikoli pevným pravidlem.

    Ergonomické požadavky na grafická uživatelská rozhraní se s rozvojem „multimédií“ (multimédií) – interaktivních systémů, které umožňují práci se statickými obrázky a pohyblivým videem, animovanou počítačovou grafikou a textem, řečí a vysoce kvalitním zvukem, zjevně ukázaly jako nedostatečné. Ergonomický výzkum a vývoj těchto systémů je komplexní a profesionálně vzrušující úkol.

    Většina projektových manažerů vývoje aplikací, poznamenává B. Tognazzini, čeká na dokončení projektu, aby mohli začít pracovat na rozhraní. Připomíná to stavbu domu, kdy je architekt pozván po postavení rámu budovy. Všichni vývojáři mají odlišný přístup k organizaci procesu vytváření rozhraní. Existují však obecné body, které by měli všichni vývojáři dodržovat:

    1) pochopit účel softwarový produkt ve všech detailech úzkou komunikací s uživateli, často s nimi trávícími celé pracovní dny, aby lépe porozuměli jejich stylu práce a individuálním návykům;

    2) vytvoření rozhraní není dílem jednoho člověka, ale zástupců tří oblastí: specialisty, který zjišťuje názor uživatelů na hlavní prvky rozhraní a popisuje je; vývojář rozhraní a tvůrce grafiky;

    3) jedna zkušená osoba by měla být jmenována jako odborník na rozhraní a prostředník mezi pracovní skupinou a uživateli;

    4) kontrola, vytvoření layoutu a kontrola znovu, protože i když je účel softwarového produktu zcela pochopen, není možné předvídat všechny potřeby uživatelů.

    D. Norman se domnívá, že rozhraní by měli vytvářet lidé, kteří se nepodílejí na vývoji aplikace, protože vývojáři vědí příliš mnoho o principech programu, a to jen brání vytvoření rozhraní. Přednosti grafického uživatelského rozhraní jsou obecně uznávány a možná poetické
    proto se nestal předmětem seriózní analýzy. Tradiční pravidlo vývojáře softwaru, podle kterého snadnost učení často brání uživateli v pozdějším plném využití všech funkcí programu, je relevantní i pro grafické rozhraní. Příkladem je vývoj projektu pro americkou pojišťovnu, která používala jednu pojišťovací aplikaci pro Macintosh, opatřenou krásným rozhraním, velmi snadno se naučit. Po dvou letech práce se však koncoví uživatelé tak zběhli různé funkce tuto aplikaci, že je grafické uživatelské rozhraní pouze zpomalovalo. Volba grafického rozhraní by měla být dána povahou úkolu uživatele.

    GUI standard.

    Jeden z hlavní změny v počítačovém průmyslu - vznik grafického rozhraní. Bylo tedy potřeba přijmout standardy GUI, které definují, jak by aplikace Windows měly vypadat? Macintosh atd. Existují dokonce certifikační programy, které prodejci přizpůsobují své aplikace tak, aby získali odznak Windows. To se děje z několika důvodů.

    Jednou z výhod Windows nebo Macu je jejich standardní vzhled. Až se naučíte pracovat v jednom z nich, zvažte, že zbytek vlastníte. Většina aplikací Windows používá stejné konvence, takže víte, jak otevřít, uložit, vytisknout, zavřít a zkopírovat soubor v kterékoli z nich. Standardní rozhraní je velmi uživatelsky přívětivé. Musíte se snažit, aby vaše aplikace vypadaly jako jiné aplikace pro Windows, se kterými se uživatelé již naučili pracovat. Existuje sedm obecných zásad pro vývoj GUI. Pokud se je naučíte a budete je dodržovat, bude návrh vaší aplikace v pořádku.

    Sedm principů vývoje GUI.

    Sedm obecných principů návrhu GUI je převzato z Průvodce rozhraním Microsoft Windows. Tvoří plán, ze kterého si můžete vytvořit své vlastní standardy. Toto schéma poskytuje vývojářům a uživatelům dvě významné výhody. Za prvé, aplikace vypadají profesionálně. Za druhé, jsou funkční, konzistentní s ostatními aplikacemi a uživatelé se s nimi snadno učí.

    Aby byla aplikace úspěšná, musí být samozřejmě dobře napsaná a užitečná – to je hlavní požadavek. Principy, o kterých mluvíme, jednoduše dávají vývojáři podnět k zamyšlení.

    1. Nechte uživatele ovládat aplikaci.

    2. Postupujte podle paradigmatu objektu/akce.

    3. Buďte důslední.

    4. Udělejte své aplikace jednoduchými a jasnými.

    5. Usilujte o harmonii.

    6. Poskytněte uživatelům zpětnou vazbu.

    7. Buďte shovívaví

    Princip první: nechte aplikaci ovládat uživatele.

    Uživatel musí aplikaci spravovat, to znamená mít přístup ke každému modulu aplikace z jakéhokoli jiného modulu. Dříve se pro takový přístup používalo hierarchické menu.


    Řekněme, že uživatel chce přidat nového klienta. V příkladu musí uživatel přejít do modulu ACCOUNTS RECCIEVAble a odtud přidat nového klienta. Jak ví, co má dělat? Pravděpodobně z mé zkušenosti s touto aplikací. A ve světě GUI uživatel jednoduše vybere z nabídky příkaz Nový, poté Zákazník, jak je znázorněno na Obr. V tomhle moderní systém Prostřednictvím nabídky Soubor můžete přidat nového zákazníka, dodavatele nebo položku zásob. To vám umožní změnit záznam zákazníka na obrazovce obchodníka a naopak. Uživatel již nemusí rozumět složitému a nepřehlednému hierarchickému menu.

    Zásada 2: Postupujte podle paradigmatu objektu/akce.

    Paradigma objekt/akce uvádí, že jakákoli operace může být provedena na všech objektech v systému. Nejjednodušším a nejviditelnějším příkladem je obrazovka zákaznické podpory (obrázek). Obrazovka obsahuje sadu tlačítek a každé z nich umožňuje provést nějakou akci s informacemi o vybraném klientovi. Můžete jej smazat, upravit, vytisknout atd. Akce, které lze provést na konkrétním klientovi, musí být dostupné nebo nedostupné ve vhodnou dobu. Pokud je například záznam zákazníka v režimu úprav, tlačítka Smazat a Nový by měla být deaktivována.

    Zásada třetí: buďte konzistentní.

    Konzistence je jedním z nejdůležitějších principů vývoje GUI. GUI – umožňuje uživatelům prozkoumat více aplikací než starší programy. A to vše díky principu konzistence. Když uživatel narazí na novou aplikaci, je s ní již obeznámen hlavní týmy: Otevřít, vytisknout a uložit soubory. Aplikace vyvinuté na těchto platformách jsou obvykle vzájemně konzistentní.

    Při vytváření nových aplikací proto buďte konzistentní. Pokud jste použili příkaz Nový k přidání nové položky, použijte jej všude. Toto slovo byste neměli nahrazovat jinými – například slovem Add 9 add). Díky vaší konzistenci budou uživatelé vědět, že kdekoli uvidí příkaz Nový, mohou jej použít k přidání nové položky.

    Zásada čtyři: aby byla aplikace jednoduchá a jasná.

    Tuto myšlenku můžete vyjádřit takto: nepoužívejte žargon. K dispozici je obrazovka se dvěma tlačítky. Jeden z nich říká „Zabalit databázi“ a druhý říká „Odstranit záznamy označené pro smazání“. Druhý záznam bude pro uživatele jistě srozumitelnější.

    Při vývoji aplikací je často lákavé používat programátorský slang v rozhraní. Snažte se tomu vyhnout, kdykoli je to možné.

    Zásada 5: Usilujte o harmonii

    I v černobílém provedení má tato obrazovka významnou estetickou nevýhodu: bílé pozadí a kontrastní objekty na něm. Na Obr. Stejná obrazovka vypadá dobře vyváženě z hlediska barev.

    Windows umí přenášet miliony barevných kombinací. Znamená to, že je třeba je použít všechny? Jistě, že ne. Měli byste volit jednoduché, klidné barvy a vyhnout se jejich náhodnému míchání, které se některým programátorům z nějakého důvodu líbí.

    Šestý princip. Poskytněte zpětnou vazbu od uživatelů.

    Představte si, že vaše aplikace má proces, jehož dokončení trvá dlouho. Během této doby můžete na obrazovce zobrazit zprávu s tímto textem: "Program běží, čekejte prosím." Pohodlné řešení; ale jak uživatel pozná, že nezavěsil? Je tedy velmi pravděpodobné, že aplikaci „pozdraví třemi prsty“ (Ctrl + Alt + Del), ačkoli s programem bude vše v pořádku.

    Je lepší ukázat uživateli, jaká část procesu se provádí. Pak nebude zbytečně přerušovat program, bude schopen posoudit, jak daleko práce pokročily, a dělat další věci, dokud proces nebude dokončen. Produktivita uživatelů se tak zvýší zhruba o 25 procent. Tohoto výsledku lze dosáhnout pouhým zobrazením měřiče na obrazovce. Obvykle se zobrazí zprávy jako „10 ze 100 záznamů zpracováno“ nebo „40 % dokončeno“. Ještě lepší je zobrazit jak počet zpracovaných záznamů, tak jejich procento.“

    Zásada sedm: Buďte shovívaví

    Každý z nás někdy smazal záznam nechtěným stisknutím špatného tlačítka. Nechte proto uživateli možnost změnit názor nebo zrušit právě provedené akce. Pokud proces trvá dlouho, mění velké množství dat nebo vyžaduje, aby uživatel před provedením akce zálohoval data, mělo by být vydáno příslušné varování Viděl jsem aplikace, které vyžadují potvrzení dvakrát a poté žádají o heslo. Potřebují vaše programy tuto úroveň ochrany? Možná. Úkolem vývojáře je pomoci uživateli, pokud v jakékoli fázi práce udělal chybu.

    Význam konvencí na standardu GUI.

    Jak vidíte, principy návrhu GUI jsou velmi jednoduché a měly by být použity při vytváření obrazovek. Před návrhem obrazovky však musíte určit, jak bude vypadat. Vyberte jeho velikosti, písma, barvy, styly zpráv atd. Vyřešením těchto otázek předem si výrazně urychlíte práci. Pokud jde o písmo nebo styl zprávy později, stačí se podívat na standard.

    Odeslat svou dobrou práci do znalostní báze je jednoduché. Použijte níže uvedený formulář

    Studenti, postgraduální studenti, mladí vědci, kteří využívají znalostní základnu ve svém studiu a práci, vám budou velmi vděční.

    Vloženo na http://www.allbest.ru/

    Vloženo na http://www.allbest.ru/

    FEDERÁLNÍ AGENTURA PRO VZDĚLÁVÁNÍ RUSKÉ FEDERACE

    Státní vzdělávací instituce

    vyšší odborné vzdělání

    Ruský státní humanitární pracovník univerzita

    Ústav informačních věd a bezpečnostních technologií

    Katedra obecné informatiky

    TEST

    PRO INFORMAČNÍ TECHNOLOGIE

    GRAFICKÁ ROZHRANÍ A NÁSTROJE PRO JEJICH VÝVOJ

    Lisičenok Konstantin Viktorovič

    Externí studium 3 roky studia

    (4leté studium)

    Skupina B (informační sféra)

    vědecký poradce,

    Kandidát technických věd, přednášející: Mashintsov E.A.

    Moskva 2005

    Plán

    Úvod

    Systém X Window

    Obecné uspořádání systému Okno X

    Programování pomocí knihovny X Toolkit Intrinsic (Xt).

    Objekty Xt, jejich klasifikace

    Informační zdroje

    Úvod

    Když v roce 1959 na konferenci UNESCO o zpracování informací pan Strechi poprvé navrhl režim sdílení času pro řešení problémů na počítačích, od tohoto okamžiku je zvykem počítat počátek interaktivního počítání a následně studium rozhraní člověk-stroj. Jak rostl výkon počítačů, rostly i náklady na komponentu konverzačního softwaru. Otázka efektivity strojů byla umocněna rychlým vstupem na trh pracovních stanic, které kombinují interaktivitu s grafikou. Pojem efektivita od té doby změnil svůj význam - pokud dříve odrážel takové vlastnosti, jako je čas procesoru a množství zabrané paměti, nyní je chápán jako snadnost vývoje, snadná údržba a pohodlnost práce s programem. Proto jsou náklady na výzkum a vývoj uživatelského rozhraní oprávněné.

    Vývoj jakéhokoli aplikačního softwaru zpravidla zahrnuje vytvoření uživatelského rozhraní. Protože většina moderních uživatelských rozhraní je založena na podobných myšlenkách ( aktivní používání„myš“, zaměření na objekty, grafiku atd. - napodobování procesů a jevů, možnost použití algoritmů, které zná každý člověk z jeho každodenního života), dále je zde možnost a potřeba vyvinout pomocný software určený k vytvoření tohoto druhu „standardních“ rozhraní, respektive jejich základů .

    Na druhou stranu mnoho různých hardwarových a systémových platforem, na kterých bude tento software muset běžet, vyžaduje jeho přenositelnost na úrovni zdrojového kódu. Výše uvedené požadavky logicky vedou k myšlence přenosné jednotné softwarové sady nástrojů pro tvorbu uživatelských rozhraní nebo, vezmeme-li v úvahu finální aplikační softwarový produkt, systému (modul, blok), který spravuje (spravuje, spouští, udržuje, spravuje) uživatelské rozhraní.

    Takové nástroje (nástroje uživatelského rozhraní) můžete klasifikovat podle schématu:

    * Textové obrazovkové systémy (curse, ncurse, atd.).

    * Systémy grafických obrazovek.

    * Systémy více oken (WMS):

    * orientovaný na znaky (text);

    * grafický;

    *Soubory nástrojů uživatelského rozhraní

    * tradiční;

    * objektově orientovaný;

    * UIDS - User Interface Development System - systém pro vývoj uživatelského rozhraní (toolkit);

    * UIMS - User Interface Management System - systém uživatelského rozhraní (řízení) (softwarový modul - nedílná součást finálního produktu ve spojení s odpovídajícím UIDS);

    * UIDE - User Interface Development Environment - vývojové prostředí uživatelského rozhraní.

    Toto schéma nepředstírá systematickou klasifikaci, spíše je to jen výčet.

    V současné době je věnováno velké úsilí vývoji metod a vytváření nástrojů v rámci systémů nazývaných UIMS - User Interface Management System.

    SystémOkno X

    Okno X nebo jednoduše X- je systém pro tvorbu grafického uživatelského rozhraní, původně - na počítačích se systémem UNIX. X byl vytvořen na MIT (Massachusetts Institute of Technology). Verze 11.6 (X11R6) již byla vydána a probíhají přípravy na vydání verze 7.

    Charakteristickým rysem X Window je jeho architektura – je sestavena podle schématu klient-server. Interakce mezi X-klientem a X-serverem probíhá v rámci odpovídajícího protokolu na aplikační úrovni – X-protokolu. X Window je lhostejný k použitému přenosu, což může být buď lokální UNIX-socket nebo jakákoli síť, jako je TCP. To znamená, že X klient a X server mohou také „žít“ na různých počítačích, tzn. program umí I/O grafické informace na obrazovce jiného počítače a rozdíly v architektuře X klienta a X serveru nehrají žádnou roli – to zajišťuje standard X protokolu. Systém poskytuje grafický výstup na obrazovku stroje, přijímá signály ze vstupních zařízení, jako je klávesnice a myš, a přenáší je do programů. Je třeba poznamenat, že výstupní zařízení může mít více než jednu obrazovku. X poskytuje výstup kterémukoli z nich. To vše: obrazovka (obrazovky), vstupní zařízení (klávesnice, myš) se nazývá X Window - displej.

    X Window je díky své architektuře volně používán v distribuovaných počítačových systémech, například v sítích TCP/IP (internet).

    X umožňuje uživateli (za displejem) komunikovat s mnoha programy současně. Aby se výstup z nich nemíchal, systém vytváří „virtuální podobrazovky“ – okna na obrazovce displeje. Každá aplikace (obvykle) kreslí pouze ve svém okně (nebo svých oknech). X poskytuje sadu nástrojů pro vytváření oken, jejich přesouvání po obrazovce, změnu jejich velikosti, zobrazení a tak dále.

    Programy mají zpravidla sadu konfiguračních parametrů - zdrojů. Může to být barva okna, různé parametry písma textu (ligatura, velikost atd.) a mnoho dalšího. Systém standardizuje způsob definování a správy aplikačních zdrojů a obsahuje řadu postupů pro práci s nimi. Tato sada funkcí se nazývá "resource manager" (Xrm - X resource manager). "Úložiště" nastavení programu se nazývá databáze zdrojů.

    X funguje podle ideologie událostmi řízené architektury – organizuje komunikaci mezi programy samotnými a mezi programy a vnějším prostředím prostřednictvím událostí. Událost je jednotka informací, která identifikuje změny nebo akce probíhající v systému. Podle identifikátoru události o ní můžete získat informace - typ události, její charakteristiky, kde se stala atd.

    Sdílené zařízení X Window

    Systém Okno X je sbírka programů a knihoven. Jeho „srdcem“ je speciální program – X-server. Jedná se o samostatný proces UNIX, který probíhá na počítači, ke kterému je displej připojen. Je to server, který zná vlastnosti konkrétního hardwaru, ví, co je třeba udělat, aby se na obrazovce zobrazil jakýkoli grafický objekt, například primitiv. Ví také, jak vnímat a zpracovávat signály přicházející z klávesnice a myši.

    Server komunikuje s klientskými programy odesíláním nebo přijímáním datových paketů z nich. Pokud jsou server a klient na různých počítačích, pak se data odesílají přes síť, a pokud jsou na stejném počítači, použije se interní kanál. Pokud například server zjistí, že uživatel stiskl tlačítko myši, připraví příslušný paket (událost) a odešle jej klientovi, v jehož okně byl kurzor myši v okamžiku stisknutí tlačítka. Naopak, pokud program potřebuje něco zobrazit na obrazovce, vytvoří potřebný datový paket a odešle ho na server. Je zřejmé, že popis této interakce, formáty paketů atd. a tvoří specifikaci výše uvedeného X-protokolu.

    Aby však bylo možné programovat pro X, není nutné znát podrobnosti implementace serveru a protokolu X. Systém poskytuje standardní knihovnu procedur, pomocí kterých programy přistupují k X „vysokým“ službám. K zobrazení bodu na obrazovce tedy stačí zavolat odpovídající standardní postup, předá mu požadované parametry. Tento postup provede veškerou práci při vytváření datových paketů a jejich přenosu na server.

    X okno

    Jak již bylo zmíněno dříve, okno je základním konceptem v X. Obvykle představuje obdélníkovou oblast na obrazovce, kterou systém poskytuje klientskému programu. Ten používá okno pro zobrazení grafických informací.

    Okno má vnitřek a okraj. Hlavními atributy okna jsou šířka a výška interiéru a také šířka (tloušťka) hrany. Tyto parametry se nazývají geometrie okna.

    Každé okno je spojeno se souřadnicovým systémem, jehož počátek je v levém horním rohu okna (přesněji jeho vnitřku). Osa x je vpravo a osa y je dole. Měrnou jednotkou pro obě osy je pixel.

    X Window umožňuje programu vytvářet více oken současně. Jsou propojeni v hierarchii, v níž jsou jedni „rodiče“ a druzí „děti“. Server sám vytvoří na každé obrazovce jedno hlavní okno, které je nejvyšším „rodičem“ všech ostatních oken. Toto okno se nazývá "kořenové" okno.

    Správa oken

    Okna lze na obrazovce libovolně rozmístit a vzájemně se překrývat. X Window má sadu nástrojů, které může klientský program použít ke změně velikosti oken a jejich umístění na obrazovce. Charakteristickým rysem systému je, že nemá vestavěnou schopnost spravovat okna pomocí myši nebo klávesnice. K tomu potřebujete speciálního klienta - správce oken (správce oken).

    Správce však nemůže správně spravovat okna, aniž by o nich něco věděl. Okna mohou mít různé vlastnosti, které by měl správce oken poskytovat: například v mnoha případech je vhodné mít názvy oken, v jiných je žádoucí, aby se okno nedalo zmenšit, nebo naopak - větší než určitá velikost. Okno lze „sbalit“ do ikony („ikony“) – v tomto případě musí manažer vědět, kterou ikonu použít a jak ji nazvat. Klienti mohou svá přání týkající se oken sdělit správci dvěma způsoby:

    * při vytváření X okna lze přenášet "doporučení" (nápovědy) o výchozí poloze okna, jeho geometrii, minimální a maximální velikosti atd.;

    * Můžete použít X vestavěný způsob komunikace mezi programy - mechanismus "vlastností".

    Grafické možnosti X Window

    X Window System je navržen pro práci na bitmapových zobrazeních. Počet bitů na pixel se nazývá hloubka nebo tloušťka displeje. Bity s stejná čísla(identické binární číslice) ve všech pixelech tvoří jakoby rovinu, jakoby rovnoběžnou s obrazovkou. Říká se tomu barevná rovina. X vám umožňuje kreslit v jakékoli barevné rovině (rovinách), aniž by to ovlivnilo ostatní.

    Hodnota pixelu nenastavuje přímo barvu bodu na obrazovce, ale nastavuje číslo buňky ve speciálním poli, ve kterém je uložena hodnota barvy, tzn. hodnota pixelu určuje číslo barvy v aktuální paletě.

    X má velkou sadu procedur, které umožňují kreslit grafická primitiva: body, čáry, oblouky, text; pracovat s plochami volného tvaru.

    "Vlastnosti" a atomy

    X Window má vestavěné prostředky pro poskytování informací mezi klientskými programy. K tomu se používá mechanismus "vlastností". "Vlastnost" je informační struktura spojená s nějakým objektem, jako je okno, dostupná všem klientům X. Každá vlastnost má jméno a jedinečný identifikátor - atom. Názvy vlastností jsou obvykle velká. Atomy se používají k přístupu k obsahu vlastností, aby se snížilo množství informací zasílaných mezi klienty a X serverem.

    X poskytuje řadu procedur, které umožňují přeložit název vlastnosti na jedinečný atom, a naopak z atomu získat potřebná data.

    Některé vlastnosti a jejich odpovídající atomy jsou předdefinovány a jsou vytvořeny při inicializaci serveru.

    Programování knihovenX Toolkit Intrinsic (Xt)

    Pro usnadnění programování v systému X window bylo vytvořeno několik balíčků. Současným de facto standardem je knihovna X Toolkit Intrinsics (Xt), která je součástí standardní distribuce systému. Xt usnadňuje inicializaci programů a vytváření oken. Knihovna navíc obsahuje nástroje pro tvorbu objektů (ovládacích prvků), které programy využívají při komunikaci s uživateli. Z hlediska Xt se ovládací prvek nazývá widget.

    V současné době jsou na základě balíčku implementovány různé sady (sady) ovládacích prvků (objektů), například Athena, OSF / Motif, Open Look. Tyto sady spolu se samotným Xt slouží jako pohodlný nástroj pro tvorbu rozhraní. Berou na sebe rutinní práci, kterou při psaní vlastní aplikace s použitím pouze základních rutin knihovny X Window by to programátor musel udělat ručně.

    Základy Xt

    programování uživatelského grafického rozhraní

    Xt objekty

    Balíček Xt je základem pro tvorbu ovládacích prvků - widgetů (blanků). Ve smyslu Xt je widget jednoduše datová struktura, jejíž pole obsahují ID samotného prvku, ID jeho okna, pokud existuje, a další. Atributy takového objektu se nazývají zdroje. Zdrojem widgetu může být například barva jeho okna, barva okraje okna, font zobrazeného textu a podobně.

    Každý objekt patří do jedné z předdefinovaných tříd (třída widgetů). Třída je chápána v obvyklém smyslu pro objektově orientované programování, tj.: třídu lze považovat za soubor instancí (objektů), které mají stejné vlastnosti. Třídy Xt tvoří hierarchii.

    Během běhu program vytváří samotné objekty (instance třídy -- widget). Tvoří kolekce, z nichž každá také představuje určitou hierarchii. Každá taková hierarchie se nazývá strom widgetů. Kořenem stromu je nutně widget, který patří do jedné z podtříd speciální třídy - Shell. Pokud mezi dvěma widgety A a B stromu objektů je první blíže kořenu než druhý, pak A je rodič ("rodič") B a B je dílčí objekt (nebo "podřízený" objekt (child)) z A. Objekt shellu je tedy rodičovským widgetem všech ostatních widgetů v tomto stromu objektů. Je to on, kdo provádí interakci programu a správce oken.

    Popsaná hierarchie widgetů odpovídá vztahu jejich oken, což je vlastnost X Window. Kromě toho je na objekty superponována další hierarchie. Faktem je, že během provozu mohou některé objekty ovládat jiné. Pokud má například objekt dílčí objekty, může při změně geometrie automaticky znovu vytvořit geometrie svých potomků. Aby k tomu došlo, je mezi widgetem vytvořeno propojení – odkaz „správa“. Každý objekt může mít jeden nebo více „spravovaných“ dílčích objektů.

    Program využívající Xt má tři mechanismy pro interakci s widgetem a X Window.

    * zpětné volání

    Postupy ("postupy zpětného volání"). Pro každou třídu je definována sada akcí, na které musí objekty do ní patřící reagovat. Například pro každou třídu je poskytnuta reakce na zničení widgetu. Když je provedena akce, zavolá se buď standardní funkce Xt, nebo jedna či více rutin poskytovaných programem. Takové funkce se nazývají procedury zpětného volání nebo jednoduše zpětné volání.

    *Akce

    -postupy. Program může nařídit reakci na tu či onu komplexní událost (skupinu událostí) pocházející z Xt. Pokud dojde k události, Xt vyhledá a zavolá příslušnou funkci.

    * Obsluha událostí

    - obsluha událostí. Tato metoda je podobná předchozí, ale je rychlejší a méně flexibilní. Umožňuje reagovat pouze na jednoduché (jednotlivé) události, nikoli však na jejich sekvence.

    Obecné programovací schéma

    Programy běžící v X musí provádět řadu standardních akcí, jako je navázání spojení se serverem, nastavení nezbytných vlastností pro správce oken a mnoho dalších kroků. Pokud je použito Xt, pak se to vše provádí jednou procedurou - XtInitialize(). Inicializuje samotný balíček, správce zdrojů X Window (\term resource manager) a provede další nezbytné operace. Volání XtInitialize() (nebo XtAppInitialize()) musí předcházet všem ostatním voláním procedur Xt. XtInitialize() vrací identifikátor shell-widget , který lze použít jako kořen stromu objektů programu. Název třídy programu je zpravidla stejný jako název samotného programu, pouze začíná velkým písmenem. Správce zdrojů používá název a třídu programu pro vyhledání jeho parametrů v databázi zdrojů.

    Každý program může zadat některé možnosti na příkazovém řádku. Xt definuje "standardní" parametry, které lze předat při spouštění programu. Kromě toho může příkazový řádek obsahovat nestandardní parametry, které jsou jedinečné pro tuto aplikaci. XtInitialize() prohledá příkazový řádek a umístí příslušné datové hodnoty do databáze.

    Při inicializaci se také vytvoří kontext programu – struktura, která uchovává veškeré informace o aplikaci. Kontext je určen k ochraně programu před vlivem různých úprav v operačním systému. XtInitialize() vytváří nějaký standardní kontext (výchozí kontext), ale přesto se od čtvrté verze X doporučuje vytvořit samostatný „osobní“ kontext pro každou jednotlivou instanci programu, pro kterou z hlediska Xt , měli byste použít volání procedury XtAppInitialize() (místo XtInitialize()). Všimněte si, že aplikace v Xt může mít ne jeden, jako obvykle, ale několik objektů " nejvyšší úroveň".

    Další fází po inicializaci je fáze vytvoření ovládacích prvků programu, popisu vztahu mezi nimi, nastavení reakcí na různé události (registrace obsluhy událostí a dalších podobných objektů). To lze provést mnoha způsoby, tradičním způsobem je použití např. procedury XtCreateWidget() k vytvoření objektu, procedura XtManageChild() k přenesení řízení nad objektem na jeho rodiče, procedura XtAddEventHandler() k registraci. manipulátory událostí pro widget a tak dále. a tak dále.

    Poté, co jsou všechny objekty programu připraveny k práci, jejich grafické znázornění (například okna odpovídající těmto widgetům) se zobrazí na obrazovce pomocí procedury XtRealizeWidget().

    Další fází je hlavní cyklus – cyklus přijímání a odesílání událostí. Je implementován voláním procedury XtMainLoop() (XtAppMainLoop()).

    Program používající pouze rutiny základní knihovny X (Xlib) musí sám zvážit každou příchozí událost (získá ji z fronty událostí explicitním voláním, například XNextEvent() nebo XPeekEvent()) a podle toho reagovat. Pokud má úloha několik oken, je před provedením jakékoli akce nutné určit, ve kterém z oken k události došlo a na jaké úrovni hierarchie bude tato událost zpracována (zpracuje tuto událost tento objekt nebo jeho nadřazený objekt? ). To vše je docela zdlouhavé.

    Xt se postará o veškerou rutinní práci. XtMainLoop() přijme další událost a určí okno, pro které je určena. Odpovídající widget se nachází v okně. V druhém případě je definována obsluha události, akční procedura nebo zpětné volání, které mají být zaregistrovány, aby reagovaly na událost, která nastala. Pokud existuje nějaká síť, jsou voláni. Mechanismus popsaný výše se nazývá odeslání události.

    XtMainLoop() (XtAppMainLoop()) automaticky ukončí program na žádost správce oken.

    Objekty Xt, jejich klasifikace

    Xt poskytuje sadu zařízení pro vytváření objektů, které programy používají ke komunikaci s uživatelem a obecně se zbytkem vnějšího světa.

    Každý vytvořený programem widget je zástupcem jedné nebo druhé třídy. Xt a balíčky na něm založené, jako OSF/Motif, Athena, Tk/tcl, Open Look atd. velký počet takové třídy. Vytváření nových widgetů, které nejsou poskytovány ve standardních knihovnách, také vyžaduje vytvoření (definici) odpovídající třídy, což je obvykle časově náročný úkol.

    Každá třída má řadu pevných charakteristik, které jsou společné všem jejím instancím (například seznam procedur zpětného volání). Hodnoty těchto charakteristik pro samotné objekty se mohou lišit.

    Všechny třídy Xt tvoří hierarchii. Pokud je třída B blíže vrcholu hierarchie než třída D, pak se B nazývá základní třída D a D se nazývá odvozená třída (nebo podtřída) B.

    Podtřídy dědí vlastnosti všech svých základních tříd. To znamená, že instance třídy má vlastnosti nejen své vlastní třídy, ale také atributy všech základních tříd.

    V programech je každá třída identifikována proměnnou, která ukazuje na odpovídající datovou strukturu. Tato proměnná se nazývá ukazatel třídy. Data této struktury se vyplní při inicializaci Xt.

    Hlavní třídy widgetů:

    objekt. Abstraktní třída (třída, která nevytváří svůj vlastní objekt), která se používá jako kořen stromu všech objektů. Obsahuje jednu podtřídu:

    RectObj. Abstraktní třída, která se používá k definování některých obecných charakteristik nezbytných pro fungování různých typů objektů (například pro objekty, které nemají okno). Obsahuje podtřídu:

    jádro. Kořen stromu tříd widgetů, které mají okna. Tato třída definuje vlastnosti společné všem objektům, jako je velikost okna widgetu a jeho pozice na obrazovce. Obsahuje podtřídu:

    Kompozitní. Widgety patřící do této třídy mohou být rodiči jiných objektů. Instance třídy Composite definují pro své podobjekty následující chování:

    * nastavuje umístění widgetu "dítě" podle určitých omezení;

    * při zničení uvolní paměť používanou podobjekty (při zničení widgetu třídy Composite budou nejprve zničeny všechny jeho "děti");

    * řídí vzhled oken svých dětských widgetů na obrazovce;

    * řídí přenos vstupního zaměření mezi objekty.

    Třída Composite obsahuje podtřídy:

    Omezení. Tato třída je dalším rozšířením základní třídy. Jeho instance mají další schopnost ovládat velikost a umístění svých dětí. Dílčí objekty mohou být například umístěny ve zvláštním pořadí: v řádku, ve sloupci a tak dále.

    Shell. Toto je speciální třída navržená pro interakci se správcem oken. widget z této třídy může mít pouze jednoho potomka. Třída Shell obsahuje podtřídy:

    OverrideShell. Toto je důležitá podtřída třídy Shell. Pro okno widgetu této třídy je atribut override_redirect nastaven na True, tj. správce oken nad tím nemá kontrolu. Okna objektů této třídy zpravidla nemají doplňky přidané správcem oken (nadpis, rámeček, standardní tlačítka) a slouží především k vytváření nabídek různého typu.

    WMShell. Toto je speciální podtřída třídy Shell, která obsahuje další pole potřebná pro interakci se správcem oken. Obsahuje:

    VendorShell. Tato třída je určena k umožnění interakce se speciálními správci oken. Tato třída obsahuje podtřídy:

    TopLevelShell. Widgety této třídy se obvykle používají jako objekty shellu stromu objektů programu. Ten obsahuje:

    ApplicationShell. Program může mít zpravidla pouze jednu instanci, která patří do třídy ApplicationShell.

    TransientShell. Tato třída se od předchozí liší pouze způsobem interakce se správcem oken. Widgety této třídy nelze minimalizovat (přeměnit na ikonu). Pokud se však rodič objektu třídy TransientShell změní na ikonu, okno widgetu se z obrazovky odstraní. Třída TransientShell se používá k vytváření dialogů.

    Každá z tříd widgetů, a tedy i objekty vytvořené na jejím základě, mají poměrně velké množství parametrů. Z hlediska Xt se nazývají „zdroje“. Xt poskytuje širokou škálu nástrojů pro práci s nimi.

    Další vlastnosti Xt

    Xt poskytuje mechanismus pro práci se soubory (a externími zařízeními obecně) v asynchronním režimu. Aplikace může zaregistrovat proceduru, která se má zavolat, když jsou data připravena nebo když dojde k chybě čtení/zápisu.

    Xt dává aplikaci možnost provádět určité akce v určených intervalech. Například periodicky zobrazovat aktuální čas na obrazovce v daném okně atd. Pro takové účely se používá speciální mechanismus Xt - časovač. Poskytuje volání po zadaném časovém intervalu speciální funkce určené programem.

    Xt poskytuje možnost provést nějakou akci, když je fronta událostí prázdná. To se provádí registrací speciální "pracovní" procedury, kterou Xt zavolá, pokud je fronta událostí prázdná. Tyto funkce se obvykle používají k provádění různých akcí a výpočtů ve velmi krátkém čase.

    Každá aplikace v případě potřeby může upravit obvyklý cyklus příjmu a odesílání (zpracování) událostí – Xt poskytuje celou sadu procedur pro práci s frontou událostí.

    Xt má mechanismus tzv. akcelerátorů (akcelerátor), který umožňuje zadávat závislosti událostí a akcí. Akcelerátory jsou podobné akčním procedurám s tím rozdílem, že událost (nebo skupina událostí) vyskytující se v jednom widgetu iniciuje volání odpovídající akční procedury na jiném objektu.

    Xt podporuje několik způsobů práce s okny widgetů. Program tedy může pomocí rutin poskytovaných Xt zobrazit okno, nastavit pro něj ten či onen provozní režim a zavřít okno, když to nebude nutné. Tyto postupy se používají hlavně k vytváření vyskakovacích nabídek a dialogů. Všechny sady widgetů (např. OSF/Motif) mají zpravidla své vlastní mnohem pohodlnější postupy pro vytváření nabídek a dialogů.

    Doplňky k Xt V současné době je Xt přísně standardizováno konsorciem X, ale neexistují žádné vyšší standardy. Populární jsou:

    *OSF/Motif Toolkit;

    * Sada widgetů Athena;

    * OPEN LOOK Intrinsic Toolkit;

    * Rozhovory;

    *Tk/tcl.

    Za nejběžnější a téměř de facto standard je třeba považovat OSF/Motif.

    Athéna

    Athena Widget Set ("sada widgetů") poskytuje konsorcium X jako součást standardní distribuce X. Athena byla vytvořena z práce na základních aplikacích a utilitách během projektu Athena na MIT, jehož výsledkem je X Window System.

    Athena měla původně „plochou“ grafiku – všechna tlačítka, nabídky a další prvky rozhraní neměly žádné stíny, tzn. byly ploché. Zhruba před rokem byl vydán AW3d, varianta Athena Widgets, která tento nedostatek napravila.

    Motiv

    Open Software Foundation Motif (OSF/Motif) je balíček, který obsahuje správce oken, sadu utilit pro provádění různých pomocných operací a knihovnu objektů postavenou na Toolkit Intrinsics.

    Motiv podporuje všechny třídy Xt a tedy zdroje těchto tříd, ale název a třída zdroje objektu jsou reprezentovány konstantami s předponou XmN a XmC, v tomto pořadí. Pro záznam typu zdroje se používají konstanty s předponou XmR (místo XtR, převzaté v Xt).

    Motiv rozšiřuje sadu tříd objektů poskytovaných Xt. Zejména Motif podporuje poměrně velkou sadu tříd, které umožňují vytvářet nabídky, posuvníky, klikací tlačítka, upravovat prvky a tak dále.

    Kromě toho Motif poskytuje speciální třídu objektů zvanou gadget – tvoří samostatnou třídu XmGadget v Motifu, což je podtřída třídy RectObj. Mohou být také použity k vytváření prvků rozhraní, ale mají tu zvláštnost, že nemají vlastní okna. Ke kreslení využívají miniaplikace okno svého rodiče.

    Každá třída widgetů má poměrně široký výběr jak zděděných, tak dodatečných zdrojů, které jsou pro ni specifické. Umožňují vám ovládat tak důležité vlastnosti objektů, jako je barva pozadí, umístění na obrazovce, písmo zobrazeného textu a tak dále.

    Některé z tříd Motif se nepoužívají k vytváření instancí widgetů (takové třídy se v terminologii objektově orientovaného programování nazývají abstraktní třídy). Obsahují nejběžnější atributy a metody potřebné pro fungování různých typů widgetů.

    Motif má dvě hlavní podtřídy objektů: XmPrimitive a XmManager (třída XmGadget byla zmíněna dříve). Obě tyto třídy jsou abstraktní. První z nich je zděděna z třídy Core a používá se jako základ pro třídy objektů, které nevlastní jiné objekty. Příkladem jsou klikatelná tlačítka, seznamy a tak dále. Třída XmManager je odvozena od třídy Constraint a používá se k vytváření objektů, které mohou mít podřízené objekty a spravovat je.

    Klasifikace objektů

    Třída XmGadget. Při vytváření instance běžných tříd objektů Motif (widget) se také vygeneruje odpovídající okno. Pokud program používá hodně widgetů, vede to k výraznému zpomalení aplikace. Čas je věnován jak tvorbě oken, tak další práci s nimi. Je ale snadné vidět, že není nutné mít pro každý objekt samostatné okno. Štítky, tlačítka a mnoho dalších widgetů by mohly úspěšně používat své rodičovské objekty k kreslení oken. Neexistuje žádné okno - není třeba znovu kontaktovat server, zvyšuje se výkon a nedochází k plýtvání další pamětí.

    Vývojáři Motifu uvedli tuto myšlenku do praxe a zduplikovali některé třídy objektů a vytvořili dvě verze – s oknem a bez okna. Verze objektů, které nemají okna, vedou svou hierarchii z abstraktní třídy - XmGadget a mají stejný obecný název. Tato speciální třída objektů zdědí své vlastnosti od třídy RectObj, což je zase abstraktní třída, která zapouzdřuje základní mechanismy pro správu geometrie objektů.

    Kromě toho, že gadgety nemají vlastní okna, jsou na ně kladena další omezení. Takže pro ně není možné definovat handlery událostí (event handler), překladové tabulky. Modul gadget také nemůže mít podřízené objekty. Jinak je funkčnost gadgetu a odpovídajícího widgetu stejná, proto je nebudeme samostatně popisovat, pouze uvedeme.

    Třída XmGadget obsahuje podtřídy:

    *XmArrowButtonGadget.

    * XmLabelGadget.\hfil

    *XmPushButtonGadget.

    *XmToggleButtonGadget.

    *XmCascadeButtonGadget.

    *XmSeparatorGadget.

    Třída XmPrimitive. Tato abstraktní třída obsahuje:

    XmArrowButton. Instance třídy je tlačítko, na kterém je nakreslena směrová šipka. Na tlačítko lze kliknout myší nebo klávesnicí. Hranice ovládacího prvku může mít stín, používá se k zobrazení různých stavů, ve kterých může být objekt: volný („stisknutý“) a stlačený.

    Značka Xm. Zástupci této třídy (štítky) jsou jedním z nejjednodušších objektů Motif. Štítky jsou navrženy tak, aby zobrazovaly informace: text nebo obrázky (bitové (pixelové) mapy).

    XmPushButton. Členy této třídy jsou obdélníková tlačítka, na která lze kliknout a do kterých lze nakreslit řádek textu.

    Pokud je objekt vybrán například stisknutím levého tlačítka myši, když je kurzor na objektu, změní se barva okraje widgetu, což vytváří efekt kliknutí. Po uvolnění tlačítka se barva ohraničení obnoví. Na takový widget můžete také kliknout z klávesnice - k tomu musíte přenést vstupní fokus na objekt a stisknout klávesu "mezera" (obvykle).

    Tlačítko XmDrawn. Objekty této třídy jsou podobné klikacím tlačítkům, jen s tím rozdílem, že nekreslí text, ale libovolný obrázek (pixelovou mapu).

    XmToggleButton. Objekty této třídy představují malé tlačítko, vedle kterého je zpravidla vysvětlující text. Tlačítko může být ve dvou stavech: zapnuto a vypnuto (tj. jde o spínač). Jsou poznamenány změnou vzhledu ovládacího prvku.

    Zástupce této třídy slouží k vytvoření tzv. "check buttons" (kontrolní tlačítko), které by bylo rozumnější nazývat "checkmarks", a "radio buttons" (radio button) - vícepolohové přepínače. První slouží k nastavení logických parametrů, tzn. mající dva významy. Posledně jmenované slouží podobnému účelu, ale soubor významů v tento případ je konečný a obsahuje více než dva prvky. Podoba grafického znázornění objektu typu XmToggleButton v tomto případě závisí na tom, zda je použit jako „tick“ nebo „radio“ tlačítko.

    Widgety třídy XmToggleButton jsou obvykle kombinovány do konstrukcí nazývaných zaškrtávací políčko a přepínač. Tyto bloky zase představují úpravy objektů třídy XmRowColumn popsané níže.

    XmCascadeButton. Objekty této třídy představují tlačítka, na která lze kliknout, a používají se při vytváření nabídek. Když kliknete na objekt, objeví se podnabídka další úrovně.

    xmllist. Zástupci této třídy jsou jedny z nejzajímavějších objektů Motif. Jsou navrženy tak, aby zobrazily seznam řetězců a poskytly uživateli možnost provádět různé akce s prvky seznamu. Uživatel může vybrat jeden nebo více řádků přítomných v tomto objektu a ty jsou zvýrazněny. Pokud má seznam navíc vstupní fokus, pak je jeden z jeho prvků zvýrazněn tečkovaným rámečkem. Tento rámec se nazývá kurzor seznamu.

    XmScrollBar. Objekty této třídy - posuvníky (scroll bars) se zpravidla používají ve spojení s jinými objekty, jako je seznam (XmList), text (XmText) a další. Posouvací lišta je určena k posouvání oblasti, pokud informace v ní uvedené (seznam, text, obrázek atd.) nelze v okně zobrazit celé. Objekty třídy XmScrollBar představují pruh (horizontální nebo vertikální) s tlačítky se šipkami na okrajích. Kliknutím na kterýkoli z nich se posouvá ve směru označeném šipkou. Na samotném pruhu posuvníku je posuvník (jezdec) - barevně zvýrazněný obdélník. Pokud jej „zaháknete“ myší a „přetáhnete“, pak to zpravidla také vede k posouvání oblasti.

    XmSeparator. Objekty této třídy - oddělovače - se zpravidla používají ke zlepšení vzhled okna aplikací. Takový widget je svislý nebo vodorovný pruh (čára) oddělující skupiny objektů. Například oddělovače lze použít v nabídkách k oddělení některých příkazů od ostatních, v dialozích - k izolaci skupiny stisknutých tlačítek od ostatních prvků atd.

    xmtext. Objekty této třídy umožňují zobrazit jeden nebo více řádků textu. Pokud se čáry nevejdou do okna, lze obrázek posouvat doleva-doprava a nahoru-dolů. Text lze upravovat - režim úprav lze změnit nastavením vhodných prostředků objektu.

    Motif poskytuje řadu pohodlných procedur, které vám umožňují provádět širokou škálu operací s widgetem této třídy: získat a upravit data, zkopírovat vybranou část dat do systémové schránky (schránky) a tak dále.

    XmTextField. Objekty této třídy umožňují prohlížet a upravovat jeden řádek textu.

    třída XmManager. Tato třída je abstraktní, tzn. nepoužívá se ke spawnování objektů. Definuje základní parametry potřebné k sestavení tříd widgetů, které mohou manipulovat s jinými objekty. Tyto prostředky jsou potřebné ke správnému vykreslení podřízených widgetů a řízení toho, jak získají vstupní fokus.

    Třída XmManager obsahuje:

    XmBulletinBoard. Objekty této třídy mohou mít podobjekty, které jsou umístěny v okně libovolným způsobem. Souřadnice okna podřízených widgetů se měří v souřadnicovém systému, jehož počátek je v levém horním rohu okna objektu třídy XmBulletinBoard.

    Při změně velikosti objektu např. pomocí myši se počáteční umístění dílčích objektů buď nezmění, nebo se posunou tak, aby nedocházelo k vzájemnému křížení. Pokud se okno widgetu zmenší, části dílčích objektů se mohou stát neviditelnými.

    Třída XmBulletinBoard obsahuje:

    Xform. Charakteristickým rysem objektů této třídy (formulářů) je schopnost řídit umístění jejich podobjektů nastavením vazeb jak mezi formulářem samotným a podřízeným widgetem, tak mezi podobjekty samotnými.

    U každého podřízeného widgetu můžete určit, k čemu je ukotven jeho levý, pravý, spodní nebo horní okraj. Pokud jsou tedy levý a pravý okraj podobjektu svázány s pravým okrajem formuláře, pak vzdálenost od nich k tomuto okraji zůstane vždy stejná. Pokud se velikost formuláře zmenší, pak se dílčí objekt posune doleva a pokud se velikost zvětší, přesune se doprava. Můžete propojit jeden dílčí objekt s druhým. Poté změnou polohy podobjektu, ke kterému je widget připojen, přesune připojený objekt tak, aby byla zachována vzdálenost mezi nimi.

    Při změně velikosti formuláře jsou zachovány všechny vztahy mezi jeho podobjekty.

    XmSelectionBox. Objekty této třídy ("pole výběru") představují příklad složeného widgetu a zahrnují rolovací seznam, kde může uživatel vybrat požadovanou položku, a také textové pole (objekt XmTextField), kde je položka vybraná v seznamu. zobrazeno. Provedený výběr může uživatel upravit. Seznam a textové pole mohou mít vysvětlující popisky nastavené pomocí odpovídajících widgetů třídy XmLabel. Objekt třídy XmSelectionBox také obsahuje tři tlačítka (objekty XmPushButton). Ve výchozím nastavení jsou označeny „OK“, „Zrušit“ a „Nápověda“. A nakonec je tu ještě jeden prvek – klikací tlačítko, které má ve výchozím nastavení název „Použít“. Tento dílčí objekt je původně vytvořen, ale není zahrnut v seznamu spravovaných modulů widget.

    Pomocí bloku výběru může uživatel specifikovat podřetězec, který potřebuje v seznamu, nebo jej zadat do textového pole. Nastavení se potvrdí stisknutím tlačítka "Ok".

    Třída XmSelectionBox zahrnuje:

    XmCommand. Objekty této třídy umožňují uživateli vybrat požadovaný příkaz pomocí seznamu již zadaných příkazů nebo zadáním příkazu do textového pole určeného speciálně pro tento ve widgetu.

    XmFileSelection. Objekty této třídy vám umožňují zobrazit aktuální obsah různých adresářů a vybrat konkrétní soubor.

    Objekty této třídy obsahují prvky:

    * 2 textová pole: "Filtr" a "Výběr" (objekty třídy XmNextField);

    * 2 seznamy: "Adresáře" a "Soubory" (objekty třídy XmList);

    * 4 tlačítka: „Ok“, „Filtr“, „Zrušit“ a „Nápověda“ (objekty třídy XmPushButton);

    Textové pole "Filtr" nastavuje masku (šablonu) pro výběr určité podmnožiny z celé sady souborů, které splňují podmínku uvedenou v tomto poli - odpovídající šabloně - je to tato podmnožina, která je zobrazena v seznamu "Soubory". Seznam "Adresáře" zobrazuje podadresáře aktuálního adresáře. V textovém poli "Výběr" se zobrazí soubor (jeho název) vybraný v seznamu "Soubory" a do stejného textového pole může uživatel ručně zadat celý název souboru, který potřebuje. Čtyři tlačítka se používají k provádění různých akcí:

    Ok - vyberte zadaný soubor;

    Filtr - aktualizace seznamu souborů zobrazených v textovém poli "Soubory" podle aktuální masky;

    Storno - zavře okno widgetu, nedojde k výběru souboru;

    Pomoc - volání o pomoc.

    XmMessageBox. Objekty této třídy jsou určeny k odesílání zpráv uživateli, ke kterým dochází během provozu programu. Tento widget je složený. Má oblast, ve které je zobrazen řádek textu (zprávy) a speciální ikonu, která charakterizuje typ zprávy. Objekt má navíc tři stlačitelná tlačítka. Ve výchozím nastavení jsou označeny: „OK“, „Zrušit“ a „Nápověda“.

    XmDrawingArea. Objekty této třídy poskytují programu okno pro kreslení a zobrazování informací. Samotná třída neposkytuje parametry, které by bylo možné přímo použít k zobrazení grafiky. Ale seznamy procedur zpětného volání dostupné v této třídě vám umožňují přijímat oznámení o nutnosti překreslit okno widgetu a o přijetí vstupního fokusu.

    XmFrame. Objekty této třídy se používají k odlišení některých objektů od jiných jejich zakroužkováním rámečkem. Zvláštností widgetu této třídy je, že mohou mít a spravovat pouze jeden podobjekt.

    XmPanedWindow. Objekty této třídy mohou kombinovat různé widgety. Dílčí objekty jsou od sebe odděleny a mezi ně je umístěn speciální prvek, který se nazývá křídlo. Vypadá jako malý čtverec a používá se ke změně velikosti podřízených widgetů. Pokud má tedy objekt třídy XmPanedWindow dva podobjekty, můžete provést následující: „zaháknout“ křídlo pomocí myši a „přetáhnout“ jej správným směrem (dolů-nahoru nebo vlevo-vpravo) - zatímco podélná velikost (velikost ve směru, ve kterém byl "vytažen" křídlo) jednoho podřízeného objektu se zvětší "na úkor" druhého (velikost druhého se zmenší), příčné rozměry obou dílčích objektů zůstanou zachovány . "Příčná" velikost objektu třídy XmPanedWindow je určena maximální podobnou velikostí jeho podobjektů.

    XmRowColumn. Objekty této třídy mohou kombinovat různé widgety. Dílčí objekty jsou uspořádány v určitém pořadí – ve formě matice. widget třídy XmRowColumn jsou základem pro vytváření následujících objektů:

    zaškrtávací políčko - "blok zaškrtávacích tlačítek" (tj. objektů třídy XmToggleButton nebo XmToggleButtonGadget); mezi tlačítky dostupnými v "bloku" lze vybrat několik ("zapnout") současně;

    radiobox – „blok přepínacích tlačítek“ (tj. objekty XmToggleButton nebo XmToggleButtonGadget); mezi tlačítky dostupnými v "bloku" lze vybrat ("povolit") pouze jedno současně;

    roletová nabídka - "rozbalovací nabídka" - okno podnabídky, které se zobrazí po výběru tlačítka v nabídce nejvyšší úrovně (panel nabídek); položky nabídky jsou uspořádány svisle;

    nabídka možností - tlačítko s přidruženou nabídkou; po stisku tlačítka se objeví okno nabídky, ze kterého se vybere jedna hodnota parametru; položky nabídky jsou uspořádány svisle;

    popup menu - "vyskakovací menu", které se zpravidla vyvolá stisknutím třetího tlačítka myši; okno nabídky se objeví v místě, kde je umístěn jeho kurzor; položky nabídky jsou uspořádány svisle;

    lišta nabídek - nabídka nejvyšší úrovně obsahující řadu tlačítek (objekty třídy XmCascadeButton nebo XmCascadeButtonGadget), která se používají k vyvolání různých podnabídek (rozbalovací nabídka); položky nabídky jsou uspořádány vodorovně.

    XmScale. Objekt této třídy je obdélníková oblast obsahující fixační posuvník (slider), pomocí kterého může uživatel vybrat hodnotu parametru spojeného s objektem ze zadaného rozsahu.

    XmScrolledWindow. Objekt této třídy poskytuje možnost zobrazit a zobrazit některé informace (text, obrázek, seznam). Takový widget zpravidla obsahuje podobjekt, ve kterém se nacházejí data určená k prohlížení (může to být objekt třídy XmText, XmDrawingArea atd.) Více pohodlné prohlížení dat, lze použít horizontální a vertikální posuvníky.

    Tato třída obsahuje podtřídu

    XmMainWindow. Objekty této třídy představují samostatnou komponentu rozhraní, která se obvykle skládá z následujících částí:

    * menu nejvyšší úrovně,

    * příkazové okno,

    * "Pracovní prostor,

    * schránka zpráv,

    * a dva posuvníky (horizontální a vertikální).

    Dílčí objekty mohou být odděleny oddělovači.

    Třídy XmMenuShell a XmDialogShell. Motif poskytuje třídu objektů XmMenuShell pro vytváření různých nabídek. Tato třída dědí z třídy OverrideShell (z Xt).

    Jak již bylo zmíněno při popisu Xt, třída TransientShell slouží k vytváření programových objektů, které na jedné straně přímo kontaktují správce oken a na druhé straně mají vlastnosti, které je odlišují od běžných oken nejvyšší úrovně. Hlavní z těchto funkcí je, že widget třídy TransientShell nelze minimalizovat. Pokud se však rodič změní v ikonu, jsou z obrazovky odstraněny. Tento druh widgetu se obvykle používá k vytváření pomocných oken programu.

    Motif přebírá zadané vlastnosti třídy TransientShell a rozšiřuje je do odvozené třídy XmDialogShell. Ten slouží jako objekt shellu dialogu.

    Struktura dialogového okna v Motivu může být reprezentována následovně:

    Objekt třídy XmDialogShell

    Objekt podtřídy XmManager, například XmBulletinBoard nebo XmForm

    Různé ovládací prvky: tlačítka, pole pro zadávání textu atd.

    Knihovna má sadu postupů, které usnadňují tvorbu popsané konstrukce.

    Dialogy

    Jak již bylo zmíněno, konstrukce dialogového okna v Motifu je následující: nejprve je zde objekt třídy XmDialogShell, který pak zahrnuje widget jedné z podtříd třídy XmManager, tento objekt slouží k hostování různých objektů.

    Knihovna poskytuje speciální postupy pro vytváření dialogů. Liší se typem widgetu, který je potomkem objektu třídy XmDialogShell.

    Textový výstup

    Knihovna má poměrně velké množství widgetů, které slouží k zobrazení textových informací. Jsou to XmLabel s podtřídami, XmText atd. Prostředek XmNfontlist se používá k určení možných písem, která lze použít při kreslení čar. Je typu XmFontlist. Jeho hodnota je sada párů "font"/"font tag".

    Tagy (štítky) jsou navrženy tak, aby programy byly nezávislé na konkrétních fontech určených uživatelem. To se provádí následovně: aplikace je vytvořena tak, že ve všech funkcích, které pracují s řádky textu, nejsou samotná písma, ale jejich popisky. Když je úloha zkompilována a spuštěna, určí se korespondence mezi značkami a konkrétními fonty. Ty druhé se používají ke kreslení.

    Motiv disponuje nástroji nejen pro práci s řádky textu zobrazenými jedním písmem, ale umožňuje pracovat i s objekty jako jsou „složené řádky“ – tzn. řádky textu, které používají mnoho písem. Existuje sada nástrojů pro vytváření takových řetězců, práci s nimi a jejich převod na normální, "jednofontové" řetězce.

    Práce s obrázky

    Motiv sám pracuje s obrázky, zastupuje je v interním formátu, což je nejjednodušší bitmapa (bitmapa), která je specifikována pomocí struktury XImage.

    Ovládání vstupního zaostření

    Motiv podporuje dva modely pro předávání vstupního zaostření. První z nich je implicitní (ukazatel): fokus je věnován widgetu, na který se přesune kurzor myši. Druhý model je explicitní: pro přenesení fokusu umístěte kurzor myši do okna widgetu a stiskněte levé tlačítko myši. Když widget nebo gadget obdrží vstupní fokus, zvýrazní se jeho ohraničení.

    Kromě těchto modelů předávání a přijímání vstupního zaměření existuje také mechanismus pro předávání vstupního zaměření z jednoho widgetu do druhého. Objekty lze kombinovat do skupin - lze to provést nastavením potřebných hodnot odpovídajících zdrojů nebo je lze předat systému. V druhém případě Motif automaticky sváže widget pomocí vestavěných pravidel. Takže například objekt třídy XmMessageBox obsahuje tři skupiny: jedna je "hlavní" objekt dialogu (třída XmForm), druhá je "label", ve kterém je zpráva prezentována uživateli, třetí jsou tlačítka být přitlačen.

    Vstupní fokus se přenáší jak z jednoho objektu (ve skupině) na druhý, tak ze skupiny do skupiny.

    Přenos fokusu v rámci skupiny se provádí pomocí kláves se šipkami a ze skupiny do skupiny pomocí klávesy tabulátor (proto se samotné skupiny nazývají skupiny karet). Když se fokus přenese na skupinu, vstupní fokus v ní se přenese na první objekt, který může fokus obdržet (objektu lze zabránit v tom, aby fokus dostal, nastavením příslušné hodnoty odpovídajícího zdroje). Pořadí, ve kterém je vstupní fokus předán v rámci skupiny, je stejné jako pořadí, ve kterém jsou vytvořeny její widgety. V tomto případě obvykle kombinace kláves přesune fokus opačným směrem.

    Motiv také poskytuje řadu procedur, které lze použít k ovládání vstupního zaměření.

    Lesstif Nedávno byla vydána freewarová obdoba Motifu, která je s ním plně kompatibilní. Jmenuje se Lesstif. Lze jej volně získat ve zdrojové podobě a zkompilovat pro různé platformy na internetu.

    Tk/tcl

    Tcl - čtěte: - je zkratka pro: "tool command language" (instrumentální příkazový jazyk). Skládá se ze dvou částí: vlastního jazyka a knihovny.

    Jazyk tcl má jednoduchou syntaxi a snadno se s ním programuje. Ve své původní podobě je tcl interpret. Umožňuje vytvářet nové konstrukce, jako jsou funkce nebo programy, což poskytuje zkušenému programátorovi mocný nástroj pro vývoj nejen finálních aplikací, ale také vlastního rozšíření jazyka tcl, vytváření a udržování vlastního stylu.

    Knihovna tcl poskytuje možnost používat překladače jazyka tcl v aplikačních programech, a proto zahrnuje skripty napsané v programech v příkazovém jazyce tcl. Knihovna obsahuje lexikální analyzátor jazyka tcl, funkce, které implementují vestavěné příkazy tcl, a umožňuje připojit k příkazům tcl vlastní podprogramy (volání funkcí). Toto uspořádání je možné pro C i C++.

    Tk je sada nástrojů kompatibilní s Motif pro vývoj grafických uživatelských rozhraní v prostředí X Window. Kromě standardního rozhraní pro C a C++ obsahuje rozhraní pro tcl, které poskytuje možnost používat zařízení Tk z prostředí interpretu příkazů tcl. To znamená, že kromě standardního programování v C a C++ lze části rozhraní aplikace implementovat jako skripty v jazyce tcl a tyto části rozhraní (dialogy, rozvržení obrazovky atd.) lze dynamicky upravovat za provozu konečný program pomocí příkazů tcl.

    Okenní prostředí "přání" vám umožňuje vytvářet aplikace s grafickým uživatelským rozhraním pouze za použití prostředků jazyka tcl.

    Podobné dokumenty

      Programovací systémy a jejich grafické možnosti. Vývoj multimediálního kurzu, který podporuje efektivní osvojení tématu "Grafické vlastnosti programovacího jazyka" studenty základní školy (na příkladu programovacích jazyků Basic a Pascal).

      práce, přidáno 29.12.2010

      Grafické komponenty obrazovka, systémové objekty a funkce. Systém prostředků interakce uživatele se zařízením. Historie grafických uživatelských rozhraní osobní počítače, jejich klasifikace. Systém X Window.

      prezentace, přidáno 22.05.2012

      Možnost programování a jednoduché grafiky. Základní struktury pro pohled a dva konstruktory s argumenty. Další souřadnice bodu a inicializace nového. Uložení a změna souřadnic levého horního rohu obdélníku.

      laboratorní práce, přidáno 12.1.2011

      Vektorová počítačová grafika. Grafická primitiva. Grafické vlastnosti programovacího jazyka Pascal. Pokyny pro studium grafiky v programovacím jazyce Pascal. Konstrukce grafů funkcí.

      semestrální práce, přidáno 13.06.2007

      Vývoj programu pro operační systém Windows pomocí VisualC++ (6.0, .NET). Zvážení základů softwarové simulace provozu zařízení (rychlovarné konvice). Pravidla pro tvorbu tříd zařízení a jeho grafického rozhraní.

      semestrální práce, přidáno 6.3.2014

      Počítačová grafika. Reprezentace grafických informací v počítači. Grafické formáty. Grafický editor. Vektorová grafika. CorelDraw. Charakteristika programu, rozhraní. Technologické možnosti a použití CorelDraw.

      semestrální práce, přidáno 19.05.2007

      Role distribuovaných výpočetní systémy při řešení moderních problémů. Systém nástrojů DVM pro vývoj paralelních programů. Nástroje pro sestavení formálního modelu grafického rozhraní. Požadavky na grafické rozhraní systému MVDr.

      semestrální práce, přidáno 15.10.2010

      Podstata programování pomocí prostředí Delphi 7 a jeho hlavní grafické možnosti. Struktura autonomně sestaveného programového modulu a jeho principy. Základní techniky práce s grafickými postupy, konstrukce oblouku, kružnice a elipsy.

      semestrální práce, přidáno 16.12.2011

      Rozsah počítačové grafiky. Typy počítačové grafiky. Barevné rozlišení a barevné modely. Software pro vytváření, prohlížení a zpracování grafických informací. Grafické možnosti textových procesorů, grafické editory.

      test, přidáno 06.07.2010

      Vývoj grafických uživatelských rozhraní. Správci zařízení a oken systému X Window. Popis plochy a aplikací KDE a GNOME. Přehled základních principů organizace rozhraní v systém Windows, popis jeho aplikačního balíčku.

    Pravidlo 2: snížit zatížení uživatele

    Pravidlo 3: udělejte rozhraní kompatibilní

    Směrnice

    Program "Tidy Start Menu"

    Závěr

    Literatura

    Úvod

    „Zlaté pravidlo designéra zní: ‚Nikdy nedělej druhým to, co oni udělali tobě‘.

    Tracey Leonardová

    Proč je nutné dodržovat zásady budování uživatelského rozhraní?

    Software musí být vyvíjen s ohledem na požadavky a přání uživatele – systém se musí uživateli přizpůsobit. Proto jsou zásady designu tak důležité.

    Uživatelé počítačů mohou mít pozitivní zkušenosti, které vzbuzují důvěru v jejich schopnosti a vytvářejí vysoké sebevědomí při práci s počítačem. Jejich jednání s počítačem lze charakterizovat jako „úspěch plodí úspěch“. Každá pozitivní zkušenost s komunikací s programem umožňuje uživateli rozšířit oblast seznámení se softwarem a zlepšit úroveň jeho kompetencí. Dobře navržené rozhraní, stejně jako dobrý učitel a učebnice, poskytuje plodnou interakci mezi uživatelem a počítačem. Úspěšná rozhraní mohou člověku dokonce pomoci vymanit se z obvyklého kruhu programů, které používá, a objevit nové, prohloubit porozumění fungování rozhraní a počítačů.

    Principy návrhu rozhraní jsou koncepty a reprezentace na vysoké úrovni, které lze použít při návrhu softwaru. Musíte určit, který z principů je pro váš systém nejdůležitější a přijatelný.

    Na začátku návrhu je třeba vyzdvihnout nejdůležitější princip, který bude rozhodující při hledání kompromisů. Pokus o dodržení všech konstrukčních zásad může vést k tomu, že se v některých situacích neospravedlní a nepříznivě ovlivní konečný výsledek. Principy jsou vodítkem k jednání.

    Tři principy návrhu uživatelského rozhraní jsou formulovány takto:

    1) ovládání uživatelského rozhraní;

    2) snížení zatížení paměti uživatele;

    3) Konzistence uživatelského rozhraní.

    Kde najít zásady návrhu uživatelského rozhraní

    Hansen představil první seznam principů designu. Principy jsou:

    1) znát uživatele;

    2) snížit zapamatování;

    3) optimalizovat provoz;

    4) opravit chyby.

    Mnoho významných výrobců operačních systémů uvádí na trh své nové produkty, vydává příslušné manuály a návody. Tyto publikace odhalují principy přístupu k návrhu rozhraní. Příručky byly vydány společností Apple Computer, Inc. (1992), IBM Corporation (1992), Microsoft Corporation (1995) a UNIX OSF/Motif (1993).

    Tyto publikace mohou čtenáři využít jako učební pomůcku. Terminologie rozhraní se může v jednotlivých příručkách lišit, ale adresování materiálu, úroveň složitosti a popsané principy uživatelského rozhraní jsou u všech knih stejné.

    Důležitost dodržování zásad

    "Nekompatibilita rozhraní může velkou společnost stát miliony dolarů ve ztrátě produktivity a zvýšených nákladech na podporu." - Jesse Briest.

    Tyto principy platí pro veškerý software a hardware, ve všech typech a stylech rozhraní. Byly vyvíjeny poměrně dlouho: probíhal výzkum v oblasti softwarového rozhraní, probíhal vývoj a byli dotazováni uživatelé mnoha počítačových platforem, včetně počítačů Macintosh a PC.

    Tyto principy obstály ve zkoušce času a nástupu nových počítačových technologií. Jakob Nielsen poznamenal: „Principy zůstanou základní, i když bude mít program futuristický 3D design s ‚DataGlove‘ pro vstup, rozpoznávání pohybu a živé videoobrazy. Budou relevantní, protože vyjadřují hlavní myšlenku dialogu s stroj pomocí příkazů“.

    Výklad těchto principů bude záviset na hardwaru, operačním systému, komponentách uživatelského rozhraní a jeho úlohách. Obchodní rozhodnutí často potlačí použití principů designéry. Uživatelské a návrhářské modely se také liší a ovlivňují způsob aplikace principů. V některých důležitých fázích vývoje projektu může vyvstat otázka: „Co bude dál?“. Odpověď by měla znít: „Co uživatel chce!“.

    Rozhodnutí o volbě optimálních principů pro vytvoření rozhraní by mělo být vypracováno společně všemi členy návrhářského týmu. Tato rozhodnutí by měla pomoci zlepšit nákup a vývoj softwarových produktů.

    Pravidla návrhu uživatelského rozhraní

    "Udělejte to jednodušší, ale ne primitivnější."

    Albert Einstein

    Pravidlo 1: dejte kontrolu uživateli

    Zkušení návrháři umožňují uživatelům řešit některé úkoly podle vlastního uvážení. Architekti po dokončení výstavby složitého komplexu budov musí mezi nimi položit cesty pro chodce. Zatím přesně nevědí, kde budou lidé přes lokality přecházet. Proto se cesty nikdy nepokládají současně s výstavbou budov. Na nástupištích mezi domy jsou umístěny cedule s nápisem: "Prosím, jděte po trávě." Po nějaké době se stavaři vracejí a teprve nyní podle „vůle“ obyvatel zasypávají vyšlapané cesty asfaltem.

    Principy, které uživateli poskytují kontrolu nad systémem:

    1) používejte režimy uvážlivě;

    2) poskytnout uživateli možnost volby: pracovat buď s myší, nebo klávesnicí, nebo jejich kombinací;

    3) umožnit uživateli soustředit pozornost;

    4) ukázat zprávy, které mu pomohou v jeho práci;

    5) vytvářet podmínky pro okamžité a vratné akce a také zpětnou vazbu;

    6) zajistit vhodné cesty a východy;

    7) přizpůsobit systém uživatelům s různou úrovní školení;

    8) učinit uživatelské rozhraní srozumitelnějším;

    9) dát uživateli možnost upravit si rozhraní podle svých představ;

    10) umožňují uživateli přímo manipulovat s objekty rozhraní;

    Používejte režimy moudře

    Režimy nejsou vždy špatné. Je potřeba umožnit člověku vybrat si režimy, které potřebuje. Rozhraní by mělo být tak přirozené, aby se s ním uživateli pohodlně pracovalo. Při práci v textovém procesoru uživatel nepřemýšlí o přepnutí do režimu vkládání nebo přepisování - to je zcela racionální a přirozené.

    Umožněte osobě používat myš a klávesnici

    Schopnost pracovat s klávesnicí pomocí klávesnice místo myši. To znamená, že pro uživatele bude jednodušší pracovat, jen to buď neumí používat, nebo na to nemá. Panely nástrojů jsou navrženy tak, aby urychlily vaši práci při používání myši. Při práci s klávesnicí se však k nim nedostanete – pro takové případy jsou k dispozici „rozbalovací“ nabídky.

    Umožněte uživateli změnit pozornost

    Nenuťte uživatele dokončit spuštěné pracovní postupy. Dejte jim na výběr – zneplatněte nebo ponechte data a vraťte se tam, kde skončili. Umožněte uživatelům řídit proces práce v programu.

    Zobrazit vysvětlující zprávy a texty

    V celém rozhraní používejte uživatelsky přívětivé výrazy. Nemusí vědět o bitech a bytech!

    Měli byste zvolit správný tón ve zprávách a pozvánkách. stejně důležité je pojistit se proti problémům a chybám. Špatná terminologie a nesprávný tón povedou uživatele k tomu, že si za vzniklé chyby budou vinit sami sebe.

    Poskytněte okamžitou a vratnou akci a zpětnou vazbu

    Každý softwarový produkt musí obsahovat funkce UNDO a REDO. Uživatel o tom musí být informován tuto akci nelze vrátit zpět a pokud je to možné, povolit alternativní akce. Neustále dbejte na to, abyste osobu informovali o tom, co se právě děje.

    Poskytněte jasné cesty a východy

    Uživatelé by si měli užívat rozhraní jakéhokoli softwarového produktu. Ani rozhraní používaná v branži by neměla uživatele děsit, neměl by se bát mačkat tlačítka nebo přejít na jinou obrazovku. Internetová invaze ukázala, že navigace je hlavní interaktivní technikou na internetu. Pokud uživatel pochopí, jak se dostat na požadovanou stránku na WWW, tak je 80procentní šance, že rozhraní pochopí. Lidé se velmi rychle naučí pracovat s prohlížečem.

    Přizpůsobte se uživatelům s různou úrovní dovedností

    „Neobětujte“ zkušené uživatele ve prospěch těch běžných. Je nutné jim zajistit rychlý přístup k funkcím programu. Pokud jsou zvyklí používat jedno makro, nenuďte je procházením několika kroků k provedení akce.

    Udělejte uživatelské rozhraní „transparentním“

    Uživatelské rozhraní je „mýtická“ část softwarového produktu. U dobrého projektu uživatelé ani nepocítí jeho „přítomnost“. Pokud je navržen špatně, uživatelé budou muset vynaložit velké úsilí, aby mohli efektivně používat softwarový produkt. Úkolem rozhraní je pomoci lidem cítit se jako „uvnitř“ počítače, volně manipulovat a pracovat s předměty. Tomu se říká „transparentní“ rozhraní!