16.3. Использование Qt Assistant для отображения текста справки.

Qt Assistant -- это приложение, которое вы можете свободно распространять совместно со своей программой, предоставляемое компанией Trolltech. Основные его достоинства -- поддержка индексации, поиск по все справочной системе и возможность поддержки нескольких наборов документации для различных приложений.

Для использования Qt Assistant в своих приложениях, необходимо добавить некоторый код, который добавит свою справочную систему в базу Qt Assistant.

Взаимодействие между приложением и Qt Assistant обеспечивает класс QAssistantClient, размещенный в отдельной библиотеке. Чтобы связать приложение с этой библиотекой, надо добавить следующую строку в файл проекта .pro:

LIBS += -lqassistantclient Создадим новый класс HelpBrowser, который будет использовать Qt Assistant для отображения текста справки. Определение класса: #ifndef HELPBROWSER_H #define HELPBROWSER_H class QAssistantClient; class HelpBrowser { public: static void showPage(const QString &page); private: static QAssistantClient *assistant; }; #endif И содержимое файла helpbrowser.cpp: #include <qassistantclient.h> #include "helpbrowser.h" QAssistantClient *HelpBrowser::assistant = 0; void HelpBrowser::showPage(const QString &page) { if (!assistant) assistant = new QAssistantClient(""); assistant->showPage(page); } Конструктор QAssistantClient получает в первом аргументе имя каталога, который используется для поиска исполняемого файла утилиты Qt Assistant. Когда передается пустая строка, то поиск производится в каталогах, указанных в переменной окружения PATH. Класс QAssistantClient имеет свою собственную функцию showPage(), которая принимает имя HTML-файла, с необязательным именем ссылки -- точь-в-точь как было сделано нами при создании класса HelpBrowser, производного от класса QTextBrowser.

Следующий шаг, который необходимо сделать -- сообщить Qt Assistant, где размещается документация к программе. Делается это путем создания профайла и файла .dcf, который содержит все необходимые сведения о документации. Как это делается описано в сопроводительной документации к утилите Qt Assistant, поэтому здесь мы не будем дублировать эти сведения.