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:
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.
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.
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.
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.
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:
qwhatsthis.h
-t "include"-olja bele a forráskódbaQWhatsThis
whats_this, vagy más néven az Ön KTMainWindow
leszármazott osztály
deklarációjáhozresource.h
fájlban, pl. #define ID_HELP_WHATS_THIS
10100
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);
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é."));