O ambiente de trabalho K

8.4. The "What's This...?" Button

The "What's This...?" button provides help windows like Quickhelp, but with the intention that the user wants to get help about a certain widget within the working view or a toolbar item. It is placed in the toolbar and gets activated once the user hits the button. The cursor changes to an arrow cursor with a question mark like the button itself looks like. The the user can press on a visible widget item and gets a help window. As an exercise, you could try this behavior with the What's this...? button within KDevelop. To add the What's This...? button, do the following:

  1. include qwhatsthis.h into your sourcecode

  2. add a private member QWhatsThis whats&_;this/ or with another member name to your KTMainWindow derived class declaration

  3. define a resource id for your what's this button into the resource.h file,e.g. &#;define ID&_;HELP&_;WHATS&_;THIS 10100

  4. in your method to create the toolbar (usually initToolBar()), add at the location you want to have the button displayed:
       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. finally, add the messages you want to have on a click over a certain widget like this:
     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."));