Предоставление помощи


Оглавление

Главная задача помощи состоит в обеспечении пользователя всей необходимой информацией о приложении и его элементах, что делает работу пользователя более удобной. Различают три типа помощи:

  • воздушная подсказка;
  • подсказка "Что это";
  • система помощи (Online Help).

Воздушная подсказка

Работая с программами, вы, наверное, заметили, что при задержке указателя мыши над кнопками панелей инструментов автоматически появляется небольшое текстовое окошко, поясняющее назначение кнопки. Такое окно называется воздушной подсказкой (tooltip) и, как правило, содержит только одну строку текста. Можно использовать подсказки, имеющие больше одной строки, но такие подсказки нужно делать как можно короче.

Присутствие воздушной подсказки в приложении является необязательным, но лучше все-таки предоставлять ее, поскольку она помогает пользователям быстрее сориентироваться среди множества кнопок. Несомненный плюс этого типа подсказки в том, что, не останавливая своей работы с приложением, пользователь получает информацию об элементах приложения.

Чаще всего такие подсказки применяются для кнопок панелей инструментов, но их можно с успехом использовать для любых виджетов. При этом не следует забывать, что воздушные подсказки не следует применять в тех случаях, когда объяснение излишне. Например, будет нелогично, если для кнопки Cancel (Отмена) повторить ее надпись в воздушной подсказке. Для того чтобы установить подсказку в виджете, нужно вызвать метод setToolTip().


QPushButton* pcmd = new QPushButton ("&Ok"); 
pcmd->setToolTip("Button");

{рисунок}

Для того чтобы удалить воздушную подсказку, просто передайте в метод setToolTip() пустую cтроку.

Подсказка "Что это"

Иногда требуется отобразить больше информации о виджете, чем способна предоставить воздушная подсказка. Подсказка What's this (Что это) является промежуточной между воздушной подсказкой и системой помощи. По своей функциональности эта подсказка очень похожа на воздушную, но с той разницей, что она не появляется автоматически при задержке указателя мыши. Для ее отображения нужно войти в специальный режим, нажав на кнопку ?, находящуюся на панели инструментов или в области заголовка окна. Также можно воспользоваться стандартной комбинацией клавиш <Shift>+<Fl>.

Пример, показанный на рисунке, отображает виджет надписи. Нажатие на кнопку ? изменит указатель мыши и нажатие, в этом случае, на элемент надписи выведет подсказку.


#include <QtGui>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    QLabel lbl("Please press the ?-Button", 
               0,
               Qt::WindowTitleHint | Qt::WindowSystemMenuHint 
               | Qt::WindowContextHelpButtonHint
              );

    lbl.setWhatsThis("<I>This is the Label</I><BR><B>Class QLabel</B>");

    lbl.show();

    return app.exec();
}

В листинге выше создается виджет надписи. В третьем параметре конструктора передаются атрибуты внешнего вида окна, а присоединенный логической операцией | (или) флаг Qt::WindowContextHelpButtonHint произведет отображение в области заголовка окна кнопки ?. После создания виджета надписи с помощью метода setWhatsThis() к нему добавляется контекстная помощь What's this (Что это). Как видно из листинга, текст подсказки, устанавливающийся методом setWhatsThis(), может использовать теги HTML.

Читать далее: Система помощи (Online Help)