Russian Qt Forum
Ноябрь 24, 2024, 16:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: help через qt  (Прочитано 9118 раз)
impus
Гость
« : Март 27, 2012, 14:38 »

Общая картина:
Сейчас существует все для ведения хэлпа в виде .chm файла: html, картинки, служебные файлы для chm(содержание, список ключевых слов). Поступила задача перевести это все на кросс-платформенную основу с уточнением: использовать qt. Вот такое ТЗ

Я новичок в программировании. Поэтому плохо ориентируюсь...

Нашел вот такую статью
Если правильно все понимаю, то нужно просто сформировать свои служебные файлы для qthelp (хоть в блокноте), а потом скормить компилятору хэлпа qhelpgenerator. Получится файлик .qhp, который будет открываться Qt Assistent'ом. Вопрос: в каком из пакетов Qt можно найти этот qhelpgenerator? Qt Assistent компилится под каждую ОС? В Qt Creator существуют инструменты для работы с этими своими служебными файлами? У меня с creator'ом проблемы возникли: среду не смог настроить (

Подскажите, пожалуйста, как это может еще выглядеть?
Проконсультируйте, пожалуйста. Спасибо
Записан
QuAzI
Гость
« Ответ #1 : Март 27, 2012, 15:10 »

Цитировать
Если правильно все понимаю, то нужно просто сформировать свои служебные файлы для qthelp (хоть в блокноте), а потом скормить компилятору хэлпа qhelpgenerator. Получится файлик .qhp, который будет открываться Qt Assistent'ом. Вопрос: в каком из пакетов Qt можно найти этот qhelpgenerator? Qt Assistent компилится под каждую ОС? В Qt Creator существуют инструменты для работы с этими своими служебными файлами?
Да, создаётся 4 файла практически ручками (часть из них может ваять на лету какой-нибудь Doxygen), но можно и тыкать прямо в html-файлы. Это веб-браузер, он поймёт.
qhelpgenerator при полной установке SDK на Win там же, где и ассистент, для Qt 2010.5 например это \Qt\2010.05\qt\bin\qhelpgenerator.exe

Я для себя переписал маленько пример идущий с Qt в examples.
Для каждого графического элемента определяю свойство whatsThis , снимаю птиц переводчика для этого свойства и на всю форму по F1 вызывается один метод
Код:
//! \brief Меню - Справка
void MainWindow::on_action_Content_help_triggered()
{
    HelpBrowser *helpBrowser = new HelpBrowser(this);
    if (!helpBrowser->showHelpByTag(this->focusWidget()->whatsThis())) /// Поиск справки к активному элементу
      if (!helpBrowser->showHelp(this->whatsThis()))  /// Показать справку к окну, если нет справки к элементу
        if (!helpBrowser->showHelp()) /// Показать общую справку если вообще ничего нет
            QMessageBox::about(this, tr("Help Error"),
                               tr("<p><b>Can't find help file !!!</b></p>" ));
}
« Последнее редактирование: Март 27, 2012, 15:14 от QuAzI » Записан
impus
Гость
« Ответ #2 : Март 27, 2012, 15:27 »

Спасибо
для начала поставлю SDK...
Записан
impus
Гость
« Ответ #3 : Март 29, 2012, 22:46 »

ура. кое-что получилось: файлик хелпа генерится и открывается...

проблема в том, что если в файлах проекта присутвуют русские символы, проект не собирается.
и если убрать все русские символы, собрать, то сраницы html - все равно ведь русскоязычные... и там целые страницы крякозябр получаются (((

как эту проблему решить, не подскажете?
« Последнее редактирование: Март 30, 2012, 11:44 от impus » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Март 29, 2012, 22:51 »

переделай файлы в UTF-8
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
impus
Гость
« Ответ #5 : Март 29, 2012, 22:54 »

о!
Спасибо большое ))
Записан
impus
Гость
« Ответ #6 : Апрель 06, 2012, 09:36 »

Господа, теперь у меня проблема с портированием qhelpcollectiongenerator.exe... Что можно сделать, чтобы хэлп собирался на другой машине? Ну кроме установки на ней Qt SDK...))

сам по себе qhelpcollectiongenerator.exe можно перенести в другую директорию с десятком dll за компанию. И на моей машине запускается. Собираю через MicrosoftVisualStudio2008. Усе работает:
1>Performing Custom Build Step
1>Reading collection config file...
1>Generating help for help_rus.qhp...
1>Building up file structure...
1>Insert custom filters...
1>Insert help data for filter section (1 of 1)...
1>Insert files...
1>Insert contents...
1>Insert indices...
1>Documentation successfully generated.
1>Generating help for help_eng.qhp...
1>Building up file structure...
1>Insert custom filters...
1>Insert help data for filter section (1 of 1)...
1>Insert files...
1>Insert contents...
1>Insert indices...
1>Documentation successfully generated.
1>Creating collection file...
1>Performing Post-Build Event...
1>Скопировано файлов:         1.
1>Скопировано файлов:         1.
1>Скопировано файлов:         1.
1>rdo_help - 0 error(s), 0 warning(s)

На чужой эта пачка файлов при поптыке компиляции выдает такое:
Performing Custom Build Step
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
Reading collection config file...
Generating help for help_rus.qhp...
Building up file structure...
Cannot open data base file C:/dev_help/app/help_mfc/help\help_rus.qch!
Performing Post-Build Event...
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Project : error PRJ0019: A tool returned an error code from "Performing Post-Build Event..."
rdo_help - 1 error(s), 0 warning(s)


очень не хочется ставить SDK... (((
Записан
QuAzI
Гость
« Ответ #7 : Апрель 06, 2012, 09:58 »

Строка QSqlDatabase: QSQLITE driver not loaded на мысли не наводит? Для работы справки в родном для Qt формате обязательно нужен драйвер SQLite.
Записан
impus
Гость
« Ответ #8 : Апрель 09, 2012, 22:36 »

есть желание каким-то прекрасным образом сделать так, чтобы вместе с assistant.exe и qcollectiongenerator.exe лежали как просто два файлика, а не два файлика + 15 dll...
как можно пересобрать assistant.exe?

*напоминаю, я слаб в программировании(*
Записан
V1KT0P
Гость
« Ответ #9 : Апрель 09, 2012, 22:43 »

есть желание каким-то прекрасным образом сделать так, чтобы вместе с assistant.exe и qcollectiongenerator.exe лежали как просто два файлика, а не два файлика + 15 dll...
как можно пересобрать assistant.exe?

*напоминаю, я слаб в программировании(*
Гугли "Статическая сборка".
Записан
impus
Гость
« Ответ #10 : Апрель 09, 2012, 22:43 »

хм.. спасибо )
Записан
impus
Гость
« Ответ #11 : Апрель 20, 2012, 18:39 »

есть способ выгружать из памяти библиотеки QT?
мне надо подобрать такой абор dll, чтобы был необходимый и достаточный набор.
просто после одного запуска ассистента они засаживаются в память и эксперимента чистого не получается. чтобы был чистый - нужен ребут. а это накладно. есть способ выгнать их из памяти?
Записан
impus
Гость
« Ответ #12 : Апрель 20, 2012, 19:01 »

мож, кто встречался с тем, что qt assitent отказывается работать с таким вот javascript'ом:
function toggle_display(e)
{
    if (e.style.display == "none")
        e.style.display = "";
    else
        e.style.display = "none";
    return false;
}

ну и вызов его:
<A onclick="return toggle_display(v1);">Примеры</A>
<DIV style="display:none" id="v1">...</DIV>

браузер его глотает и работает на ура. а assistent  не хочет (( и это при том, что скрипты типа document.write('....'); он глотает нормально. есть идеи?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.