Das KDevelop-Programmierhandbuch: Leitfaden zur C++-Anwendungsentwicklung fr 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"-Schaltflche 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 erhlt 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 folgendermaen:
Binden Sie qwhatsthis.h in Ihren Quellcode ein.
Fgen Sie eine private Instanz der Klasse QWhatsThis namens whats&;this/ o.. zu Ihrer von KTMainWindow abgeleiteten Klassendeklaration hinzu.
Legen Sie eine Ressourcenkennung fr 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 fgen Sie den Text hinzu, den ein Klick mit dem Fragezeichencursor erscheinen lsst:
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.")); |