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, поэтому здесь мы не будем
дублировать эти сведения.