L'environnement de bureau K

8.4. Le Bouton "What's This...?"

Le bouton "What's This...?" fournit des fenêtres d'aide comme Quickhelp mais avec l'hypothèse que l'utilisateur veut obtenir de l'aide sur un widget précis dans la vue ou sur un élément de barre d'outils . Il est placé dans la barre d'outils et est activé lorsque l'utilisateur clique sur le bouton. Le curseur se change en un curseur avec une flèche et un point d'interrogation semblable à l'apparence du bouton lui-même. Ensuite, l'utilisateur peut cliquer sur un widget visible et une fenêtre d'aide s'affiche. À titre d'exercice, vous pourriez tester ce comportement avec le bouton What's this...? (NdT : Qu'est-ce que c'est...?) de KDevelop. Pour ajouter le bouton What's This...?, procédez ainsi :

  1. incluez qwhatsthis.h dans votre code source

  2. ajoutez une donnée membre privée QWhatsThis whats&_;this ou avec un autre nom à la déclaration de votre classe dérivant de KTMainWindow

  3. définisez un identificateur de ressource pour votre bouton what's this dans le fichier resource.h, par exemple &#;define ID&_;HELP&_;WHATS&_;THIS 10100

  4. dans votre méthode de création de la barre d'outils (généralement initToolBar()), ajoutez l'emplacement où vous voulez que le bouton soit affiché :
       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. enfin, ajoutez les messages que vous voulez voir lors d'un clic sur un certain widget comme ceci :
     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."));