# 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."));