Következő Előző Tartalom

## 8. Segítség-Súgó funkciók

Az fejlesztési folyamat fontos része, hogy a felhasználónak minden olyan segítséget biztosítsunk, ami csak lehetséges. A legtöbb fejlesztő késlekedik ezzel, de jusson eszébe, hogy nem feltétlenül Unix szakemberek a felhasználók. Lehet, hogy a szoftverhasználat sötét oldalát ismerik csak, amelyik azzal kecsegtet, hogy a felhasználónak semmiféle segédeszközre nicsen szüksége az alkalmazás megismeréséhez. Ezért a KDE és a Qt minden olyan eszközt biztosít, amely egy alkalmazást tökéletessé tesz a felhasználók szemében azzal, hogy használható segítséget nyújt. Ezek a funkciók a következők lehetnek egy alkalmazáson belül:

- Eszköztippek
- Gyorssegély
- Állapotsor súgó
- "Mi ez...?" gombok

Mindemellet, az alkalmazásnak a szokásos F1 gomb lenyomására is biztosítania kell egy HTML alapú kézikönyvet.

A KDevelop úgy biztosít minden fajta segítséget, ahogyan azt egy, az alkalmazásvarázslóval készített KDE keretalkalmazás is támogatja. Ez a fejezet abban fog önnek segíteni, hogy hogyan kell ezeket súgófunkciókat beépíteni a készülő alkalmazásba.

Alkalmazásának fejlesztése közben próbáljon meg következetes lenni abban, amit csinál; tehát tegye meg a szükséges lépéseket már a kód írása közben. Ezzel megelőzheti azt, hogy később kelljen keresgélnie és kitalálnia, hogy mit is csinál az alkalmazás, vagy hogy az adott kódrész mire is való pontosan.

## 8.1 Eszköztippek

A segítségnyújtás igen egyszerű módja az eszköztippek alkalmazása. Ezek azok a kis segédüzenetek, amelyek akkor bukkannak elő, amikor az egérmutató elhalad egy olyan elem felett, amelyik támogatja ezt a funkciót, és eltűnnek akkor, amikor az egérmutató elhagyja azokat.Az eszköztipp legelterjedtebb alkalmazási módja az, amikor az eszköztárs -nál alkalmazzák őket őket, ahol a lehető legkisebb helyet szabad csak foglalniuk, hiszen az eszköztárak, tartalmának megjelenítésének szempontjából többféleképpen is beállítható: a szöveg a gombon, a gomb jobb oldalán, a gomb alatt van, vagy csak szöveg található. Ennek beállítására lehetőséget lehet adni a felhasználónak, de ez persze nem kötelező. A szöveg mindenféleképpen eszköztippként jelenik meg és az eszköztár általában gombokból, vagy más elemekből áll, mint pl. sorszerkesztők és (!!!combo boxes!!!) Részletes útmutatásért nézze meg a `KToolBar` osztály útmutatóját, amely a KDE-UI könyvtárban található.

Példaként lássuk az "Új állomány" gombot egy hétköznapi alkalmazásban:

> `

>     toolBar()->insertButton(Icon("filenew.xpm"), ID_FILE_NEW, true, i18n("New File") );

> `

Itt a `i18n("New File")` rész tartalmazza az elemtipp üzenetet. Ezt az `kapp.h` biztosította i18n() makróval csatoltuk, hogy az elemtipp további nyelvekre is lefordítható legyen.

A Qt által biztosított `QToolTip` és `QToolTipGroup` osztályok segítségével bármely elemhez kapcsolhatunk elemtippet.

Egy példa erre:

> `

>     QToolTip::add( yourwidget, i18n("your Tip") );

> `

További információért nézze meg a Qt-online súgóját, a `QToolTip` osztályt.

## 8.2 Gyorssegély hozzáadása

A gyorssegély ablakok szintén jó példái a segítségnyújtásnak. A felhasználó úgy juthat segítséghez, hogy a jobb egérgombbal rákattint az elemre, és az előreugró menüből kiválasztja a Gyorssegélyt. Tehát a gyorssegély valahol a részletes kézikönyv és az eszköztipp fogalma között helyezkedik el - a dokumentáció túl részletező, az eszköztipp pedig túlságosan szűkszavú lenne. Hogy lássa hogyan működik a gyorssegély, nyisson meg egy dialógust a KDevelopban, és kattintson a jobb egérgombbal valamelyik párbeszédelemen. Ezután válassza a Gyorssegély menüpontot és máris megjelenik a segítség egy szöveges üzenet formájában. Emellett az üzenetek tartalmazhatnak URL hivatkozásokat valamely weblapra (természetesen a kézikönyvre is), valamint formázhatóak színekkel és különböző betűtípusokkal.

Hogy használható legyen a gyorssegély, a forrásállományhoz adja hozzá a segítséget tartalmazó `kquickhelp.h` állományt. Mivel a `KQuickHelp` osztály a KDE-UI könyvtár része, ezért valószínüleg az ön alkalmazása is használja azt; ha mégsem, akkor projektjének linker flagjeit állítsa be a kdeui használatára.

Egy példa:

> `

>     KQuickHelp::add( yourwidget, i18n("your Tip") );

> `

amely majdnem ugyanaz, mint QToolTip-nél. Mikor a KDevelop dialógusszerkesztőjével készít dialógust, akkor a Gyorssegélyt és az Eszköztippeket az implementációs állományhoz adja hozzá, Ne pedig az adat-forrásállományhoz, hiszen a dialogusszerkesztő ezt minden alkalommal frissíti, amikor ön az elemet szerkeszti.

A `KQuickHelp` osztály, tagek használatával biztosítja a szöveg formázását. Lehetővé teszi hiperlinkek, internet protokolok, színek, betűtípusok és méretek használatát. További információért nézze meg a KDE Library Reference Guide -ot és a `KQuickTip`-hez járó osztály-dokumentációt -t.

## 8.3 Az állapotsor súgó

Mivel a KDeveloppal létrehozott keretalkalmazások tartalmaznak állapotsort, ezért általában használnak állapotsor üzeneteket is, szinte az összes menühöz és eszköztár elemhez. Az állapotsori súgóüzenet egy rövid üzenet, amely kicsit részletezi az elemtippet, vagy pedig helyettesíti azt a menüsor elemek fölött, és amelyik (mint ahogy a neve is utal rá) megjelenik az állapotsorban, ha a felhasználó belép egy menübe és kijelöl egy menüpontot; tehát minden menüpont kapcsolatban áll a jelével `highlighted(int)` (signal), ami a `statusCallback(int)` eljárás, amelyik kiválasztja a megfelelő üzenetet egy döntéshelyzetben. Mikor menüpontot, vagy eszköztár elemet ad hozzá már létező menükhöz, az eljárásba vegye bele annak az eseménynek a leírását, amelyet a felhasználó elindithat a menüpont, vagy gomb megnyomásával.

Példa:

> `

>         case ID_FILE_NEW:
>                     slotStatusHelpMsg(i18n("Új dokumentum létrehozása"));
>                     break;

> `

Ez megjeleníti az állapotsori üzenetet a `slotStatusHelpMsg()` eljárás meghívásával, a megfelelő üzenetet kiíratva, amikor a felhasználó kiemel egy menüt, vagy egy eszköztár elemet az id ID_FILE_NEW-val, ami a `statusCallback()` eljáráshoz kapcsolódik. Az eszköztárak ehhez az eljáráshoz kapcsolódnak a `pressed(int)` jellel, ami megengedi a felhasználónak, hogy egy eszköztár gomb megnyomása után elmozdítsa az egeret, ha mégsem akarja végrehajtatni a parancsot. A `KToolBar` is biztosít egy `highlighted(int, bool)` jelet, ami az üzenet megjelenítésére használható a beállított jel helyett, ha a felhasználó egy gombora állítja az egeret.

## 8.4 A "Mi ez...?" gomb

A "mi ez...?" gomb hasonlóképpen nyújt segítséget, mint a Gyorssegély , azonban a felhasználó a itt munkaterület egy adott eleméről, vagy egy eszköztár elemről tudakozódhat. Ezt az eszköztár -ban helyezik el, és akkor aktiválódik, amikor a felhasználó rákattint. Ekkor a kurzor egy olyan kérdőjeles nyillá változik, amilyen maga a gomb is. A felhasználó rákattinthat bármelyik látható elemre és megjelenik egy súgó ablak. Gyakorlásképpen próbálja ezt ki a KDevelopban, hogy meglássa hogyan is viselkedik a "Mi ez...?" gomb.

A "Mi ez...?" gomb hozzáadásához tegye a következőket:

1. a `qwhatsthis.h` -t "include"-olja bele a forráskódba
2. adjon hozzá egy private elemet `QWhatsThis` whats_this, vagy más néven az Ön `KTMainWindow` leszármazott osztály deklarációjához
3. adjon meg egy erőforrásazonosítót (resource id) a 'mi ez' nyomógomjához a `resource.h` fájlban, pl. `#define ID_HELP_WHATS_THIS 10100`
4. az Ön eszköztárat létrehozó eljárásában (általában `initToolBar()` a neve) adja meg ott, ahol ki akarja rajzoltatni a gombot, a következőket:

   > `

   >       whats_this = new QWhatsThis;
   >       QToolButton *btnwhat = whats_this->whatsThisButton(toolBar());
   >       QToolTip::add(btnwhat, i18n("What's this...?"));
   >       toolBar()->insertWidget(ID_HELP_WHATS_THIS, btnwhat->sizeHint().width(), btnwhat);
   >       btnwhat->setFocusPolicy(QWidget::NoFocus);

   > `

5. végül írja hozzá a kívánt üzeneteket a következőképpen:

   > `

   >     whats_this->add(class_tree, i18n("Class Viewer\n\n"
   >                             "Az osztályböngésző megmutatja az aktuális projektállományok minden"
   >                             "osztályát, eljárását és változóját, valamint átválthatunk vele a"
   >                             "deklarációkra és implementációkra. A jobb egérgombbal előreugró menü"
   >                             "sokkal célirányosabb használatot tesz lehetővé."));

   > `

Következő Előző Tartalom