Рабочая среда К

8.4. Кнопка "What's This...?"

Кнопка "What's This...?" предоставляет окно помощи, аналогичное Quickhelp, когда пользователь хочет получить конкретную помощь по определенному элементу рабочей области или элементу панели инструментов. Она располагается на панели инструментов и активируется после нажатия пользователем на нее. Курсор изменяется на стрелку с вопросительным знаком, как это изображено на кнопке. Пользователь может нажать на видимый элемент и получить окно помощи. В качестве упражнения вы можете посмотреть на поведение What's this...? в KDevelop. Для добавления кнопки What's This...? проделайте следующее:

  1. включите qwhatsthis.h в исходный код

  2. добавьте функцию-член QWhatsThis whats&_;this (или с другим именем) в область private вашего класса, унаследованного от KTMainWindow

  3. определите идентификатор ресурса для этой кнопки в resource.h, например, &#;define ID&_;HELP&_;WHATS&_;THIS 10100

  4. в методе, создающем панель инструментов (обычно initToolBar()), добавьте, где должна располагаться ваша кнопка:
       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. добавьте сообщение, которое будет отображаться для определенного элемента:
     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."));