Использование Qt Assistant для мощной интерактивной системы помощи
Использование Qt Assistant для мощной интерактивной системы помощи
Qt Assistant является свободно распространяемой интерактивной системой помощи, поддерживаемой фирмой «Trolltech». Основным ее достоинством является поддержка индексации и поиск по всему тексту, а также возможность ее работы с наборами документации нескольких приложений.
Для применения Qt Assistant мы должны включить в наше приложение соответствующий программный код и указать Qt Assistant место расположения нашей документации.
Связь между приложением Qt и QtAssistant обеспечивается классом QAssistantClient, который располагается в отдельной библиотеке. Для сборки этой библиотеки с нашим приложением мы должны добавить следующую строку к файлу приложения .pro:
CONFIG += assistant
Теперь мы рассмотрим программный код нового класса HelpBrowser, который использует Qt Assistant.
01 #ifndef HELPBROWSER_H
02 #define HELPBROWSER_H
03 class QAssistantClient;
04 class QString;
05 class HelpBrowser
06 {
07 public:
08 static void showPage(const QString &page);
09 private:
10 static QAssistantClient *assistant;
11 };
12 #endif
Ниже приводится новый файл helpbrowser.cpp:
01 #include <QApplication>
02 #include <QAssistantClient>
03 #include "helpbrowser.h"
04 QAssistantClient *HelpBrowser::assistant = 0;
05 void HelpBrowser::showPage(const QString &page)
06 {
07 QString path = QApplication::applicationDirPath() + "/doc/" + page;
08 if (!assistant)
09 assistant = new QAssistantClient("");
10 assistant->showPage(path);
11 }
Конструктор QAssistantClient принимает в качестве своего первого аргумента строку пути, который используется для определения места нахождения исполняемого модуля Qt Assistant. Передавая пустой путь, мы указываем на необходимость QAssistantClient поиска исполняемого модуля в путях переменной среды PATH. QAssistantClient имеет функцию showPage(), которая принимает имя файла страницы HTML с необязательным указанием метки позиции.
На следующем этапе необходимо подготовить оглавление и предметный указатель документации. Это выполняется путем создания профиля Qt Assistant и файла .dcf, который содержит сведения о документации. Все это объясняется в документации по Qt Assistant, и поэтому мы не станем здесь повторять эти сведения.
В качестве альтернативы QTextBrowser или Qt Assistant можно спользовать зависящие от платформы методы обеспечения интерактивной помощи. Для приложений Windows можно создать файлы системы помощи Windows HTML Help и обеспечить доступ к ним при помощи Internet Explorer компании Microsoft. Вы могли бы использовать для этого класс Qt QProcess или рабочую среду ActiveQt. Для приложений X11 подходящий метод мог бы состоять в создании файлов HTML и запуске веб-браузера, с использованием QProcess. В Mac OS X подсистема Apple Help предоставляет аналогичные функциональные возможности для Qt Assistant.
На этом мы завершаем часть II. В части III рассматриваются более продвинутые и специализированные средства разработки Qt. Их применение при программировании на С++ вызывает не больше трудностей, чем программирование того, что мы видели в части II, однако некоторые концепции и идеи могут вызвать дополнительные сложности в новых для вас областях.