Development/Architecture/KDE4/Providing Online Help (de)

    From KDE TechBase
    Revision as of 20:49, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "</code>" to "</syntaxhighlight>")


    Development/Architecture/KDE4/Providing Online Help


    KDE Architecture - Providing online help

    Ein Programm einfach und intuitiv benutzbar zu machen, umfasst eine weite Bandbreite von Einrichtungen, die man im Allgemeinen als Online Hilfe bezeichnet. Online Hilfe hat meherer teilweise widersprechende Ziele: Auf der einen Seite soll es den Benutzern Antworten auf die Frage "Wie kann ich eine bestimmte Aufgabe erledigen?" geben, auf der anderen seite sollte es dem Benutzer helfen, die Applikation zu erforschen und neue, bisher unbekannte Funktionen zu finden, die er oder sie noch nicht kannten. Es ist wichtig zu erkennen, dass dieses nur erreicht werden kann, indem man mehere Ebenen der Hilfe anbietet:

    • Tooltips sind kleine Bezeichner, die erscheinen, wenn sich die Maus einige Zeit über Schnittstellenelementen befindet. Diese sind besonders für Werkzeugleisten wichtig, wo die Icons nicht immer ausreichend erklären, was ein bestimmter Knopf bewirkt.
    • "What's this?" (Was ist das?) Hilfe ist üblicherweise eine längere und ausführlichere Erklärung eines Widget oder eines Menüeintrages. In Dialogen kann es auf zwei Arten aufgerufen werden: Entweder durch Drücken von Shift-F1 oder indem man auf das Fragezeichen in der Titelzeile klickt (letzters ist vom Window Manager abhängig). Der Maus Zeiger verwandelt sich in einen Pfeil mit Fragezeichen und das Hilfefenster erscheint, wenn der Benutzer das ihn interessierende Element anklickt. Die "What's this?" Hilfe für Menüeinträge wird üblicherweise über einen Knopf in der Werkzeugleiste aktiviert. Dieser zeigt einen Pfeil und ein Fragezeichen.
      Das Problem bei dieser Herangehensweise ist, dass der Benutzer nicht sehen kann, ob ein Widget eine Hilfe anbietet oder nicht. Wenn der Benutzer den Fragezeichenknopf aktiviert und dann keine Hilfe bekommt, wenn er ein Widget anklickt, wird er schnell frustriert werden.



    Der Vorteil der "What's this?" Hilfe, die von Qt und KDE zur Verfügung gestellt wird, ist, dass sie rich text beinhalten kann, zum Beispiel verschiedene Schriftarten, Fett- und Kursivschrift und sogar Bilder und Tabellen.

    QWhatsThis screenshot
    • Zu guter Letzt sollte jedes Programm ein Handbuch haben. Ein Handbuch wird normalerweise im khelpcenter betrachtet und über das Hilfe-Menü aktiviert. Das bedeutet, dass eine komplette zusätzliche Applikation sich öffnet und den Benutzer von seiner Arbeit ablenkt. Konsequenterweise sollte daher das Befragen des Handbuches nur notwednig sein, wenn die Tooltips und "What's this?" Hilfe nicht ausreichen. Natürlich hat ein Handbuch den Vorteil, dass es nicht nur einen einzelnen, isolierter Apsekt der Benutzerschnittstelle erklärt. Statt dessen erklärt es die Aspekte einer Applikation in einem größeren Kontext. Handbücher für KDE werden mit der DocBook markup language geschrieben.

    Aus der Sicht des Programmierers, bietet Qt eine einfach zu benutzende API für die Online Hilfe. Um einen Tooltip einem Widget zuzuordnen, benutze einfache die setToolTip() Methode.

    widget->setToolTip(i18n("This widget does something."))
    

    Wenn die Menüs und Werkzeugleisten mit der action pattern erzeugt werden, wird die Zeichenkette für den Tooltip aus dem ersten Argument des KAction Konstruktors abgeleitet:

    action = new KAction(i18n("&Delete"), "editdelete",
                         SHIFT+Key_Delete, actionCollection(), "del")
    

    Hier ist es auch möglich, einen Text zuzuordnen, der in der Statuszeile angezeigt wird, wenn der entsprechende Menüeintrag ausgewählt wird.

    action->setStatusText(i18n("Deletes the marked file"))
    

    Die API für die "What's this?" Hilfe ist sehr ähnlich. In Diaglogen, benutze folgenden Code:

    widget->setWhatsThis(i18n("<qt>This demonstrates <b>Qt</b>'s"
                            " rich text engine.<ul>"
                            "<li>Foo</li>"
                            "<li>Bar</li>"
                            "</ul></qt>"))
    

    Für Menüeinträge benutze

    action->setWhatsThis(i18n("Deletes the marked file"))
    

    Der Aufruf von khelpcenter wird in der KToolInvocation Klasse abgekapselt. Um das Handbuch deiner Applikation anzuzeigen, muß nur die statische Methode aufgerufen werden:

    KToolInvocation::invokeHelp()
    

    Dadurch wird die erste Seite mit dem Inhaltverzeichnis dargestellt. Wenn du nur einen bestimmten Abschnitt des Handbuches anzeigen willst, kannst du ein zusätzliches Argument an invokeHeko() übergeben, welches den Anchor festlegt, zu dem der Browser springen soll.


    Ursprünglicher Autor (des englischen Artikels): Bernd Gehrmann