Das KDevelop-Programmierhandbuch: Leitfaden zur C++-Anwendungsentwicklung für das K Desktop Environment (KDE) mit Hilfe der KDevelop-IDE in der Version 1.2 | ||
---|---|---|
Zurück | Kapitel 8. Hilfefunktionen | Vor |
Ähnlich wie bei KQuickHelp verstecken sich hinter Kontexthilfe-("What's This...?"-)-Buttons Hilfefenster -- allerdings mit dem Unterschied, dass der User in diesem Fall Hilfe zu einem bestimmten Widget innerhalb der aktuellen Ansicht oder zu einem Werkzeugleistenicon sucht. Die im englischen "What's This...?" genannte "Fragezeichen"-Schaltfläche hat ihren Platz in der Werkzeugleiste und wird aktiviert, sobald der Benutzer darauf klickt. Im Gegenzug ändert der Cursor seine Form zu einem Fragezeichen -- ganz so wie das, was auf dem Button selbst steht. Der Anwender kann damit auf ein beliebiges sichtbares Widget klicken und erhält daraufhin ein Hilfefenster. Um zu sehen, wie das funktioniert, probieren Sie dieses Verhalten einfach mit dem Fragezeichen-Button in KDevelop aus.
Einen solchen Kontexthilfe-Button erzeugen Sie folgendermaßen:
Binden Sie qwhatsthis.h in Ihren Quellcode ein.
Fügen Sie eine private Instanz der Klasse QWhatsThis namens whats&_;this/ o.ä. zu Ihrer von KTMainWindow abgeleiteten Klassendeklaration hinzu.
Legen Sie eine Ressourcenkennung für Ihren Kontexthilfe-Button in der Datei resource.h fest, z.B. &#;define ID&_;HELP&_;WHATS&_;THIS 10100
Geben Sie in der Methode, mit der Sie die Werkzeugleiste erzeugen (normalerweise initToolBar()) an, wo der Fragezeichen-Button erscheinen soll:
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); |
Zum Schluss fügen Sie den Text hinzu, den ein Klick mit dem Fragezeichencursor erscheinen lässt:
whats_this->add(class_tree, i18n("Class Viewer\n\n" "The class viewer shows all classes, methods and variables " "of the current project files and allows switching to declarations " "and implementations. The right button popup-menu allows more specialized " "functionality.")); |