Название: help через qt Отправлено: impus от Март 27, 2012, 14:38 Общая картина:
Сейчас существует все для ведения хэлпа в виде .chm файла: html, картинки, служебные файлы для chm(содержание, список ключевых слов). Поступила задача перевести это все на кросс-платформенную основу с уточнением: использовать qt. Вот такое ТЗ Я новичок в программировании. Поэтому плохо ориентируюсь... Нашел вот такую статью (http://doc.crossplatform.ru/qt/4.7.x/qthelp-framework.html) Если правильно все понимаю, то нужно просто сформировать свои служебные файлы для qthelp (хоть в блокноте), а потом скормить компилятору хэлпа qhelpgenerator. Получится файлик .qhp, который будет открываться Qt Assistent'ом. Вопрос: в каком из пакетов Qt можно найти этот qhelpgenerator? Qt Assistent компилится под каждую ОС? В Qt Creator существуют инструменты для работы с этими своими служебными файлами? У меня с creator'ом проблемы возникли: среду не смог настроить ( Подскажите, пожалуйста, как это может еще выглядеть? Проконсультируйте, пожалуйста. Спасибо Название: Re: help через qt Отправлено: QuAzI от Март 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 Меню - Справка Название: Re: help через qt Отправлено: impus от Март 27, 2012, 15:27 Спасибо
для начала поставлю SDK... Название: Re: help через qt Отправлено: impus от Март 29, 2012, 22:46 ура. кое-что получилось: файлик хелпа генерится и открывается...
проблема в том, что если в файлах проекта присутвуют русские символы, проект не собирается. и если убрать все русские символы, собрать, то сраницы html - все равно ведь русскоязычные... и там целые страницы крякозябр получаются ((( как эту проблему решить, не подскажете? Название: Re: help через qt Отправлено: kambala от Март 29, 2012, 22:51 переделай файлы в UTF-8
Название: Re: help через qt Отправлено: impus от Март 29, 2012, 22:54 о!
Спасибо большое )) Название: Re: help через qt Отправлено: impus от Апрель 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... ((( Название: Re: help через qt Отправлено: QuAzI от Апрель 06, 2012, 09:58 Строка QSqlDatabase: QSQLITE driver not loaded на мысли не наводит? Для работы справки в родном для Qt формате обязательно нужен драйвер SQLite.
Название: Re: help через qt Отправлено: impus от Апрель 09, 2012, 22:36 есть желание каким-то прекрасным образом сделать так, чтобы вместе с assistant.exe и qcollectiongenerator.exe лежали как просто два файлика, а не два файлика + 15 dll...
как можно пересобрать assistant.exe? *напоминаю, я слаб в программировании(* Название: Re: help через qt Отправлено: V1KT0P от Апрель 09, 2012, 22:43 есть желание каким-то прекрасным образом сделать так, чтобы вместе с assistant.exe и qcollectiongenerator.exe лежали как просто два файлика, а не два файлика + 15 dll... Гугли "Статическая сборка".как можно пересобрать assistant.exe? *напоминаю, я слаб в программировании(* Название: Re: help через qt Отправлено: impus от Апрель 09, 2012, 22:43 хм.. спасибо )
Название: Re: help через qt Отправлено: impus от Апрель 20, 2012, 18:39 есть способ выгружать из памяти библиотеки QT?
мне надо подобрать такой абор dll, чтобы был необходимый и достаточный набор. просто после одного запуска ассистента они засаживаются в память и эксперимента чистого не получается. чтобы был чистый - нужен ребут. а это накладно. есть способ выгнать их из памяти? Название: Re: help через qt Отправлено: impus от Апрель 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('....'); он глотает нормально. есть идеи? |