2013-05-22 4 views
0

В моем приложении Qt мы можем открыть файл справки (CHM), выполнив следующие действия:Открытие файла CHM, содержащий объединенные файлы в приложении Qt

QDesktopServices::openUrl(QUrl::fromLocalFile(_PathToTheCHMFile)); 

Это, как представляется, предлагаемый способ делать вещи. И это до сих пор работало.

Однако команда документации теперь изменила работу файлов chm. Теперь мы ссылаемся на «главный» файл, который содержит только ссылки на другие файлы chm. Структура каталогов из CHM файлов выглядит следующим образом:

master.chm 
SUBDIR/ 
    -> child1.chm 
    -> child2.chm 
     ... 

Если открыть файл master.chm с Hh.exe (инструмент по умолчанию в окнах), все выглядит идеально. Тем не менее, из моего приложения Qt открывается файл справки, но нет дополнительных тем, только корневой узел.

Я предполагаю, что это проблема пути поиска, и она не может разрешить относительные пути. Кажется, что нет никакого способа настроить вызов openURL для запуска из определенного каталога или что-то в этом роде.

Заранее спасибо

ответ

2

Если вы должны быть в состоянии получить доступ к этим элементам должным образом, то вам, возможно, потребуется изменить ваши приложения текущего каталога на лету.

http://qt-project.org/doc/qt-4.8/qdir.html#details

http://qt-project.org/doc/qt-4.8/qdir.html#setCurrent

Если это не работает, вы можете посмотреть в использовании QProcess::startDetached

http://qt-project.org/doc/qt-4.8/qprocess.html#startDetached

и указания рабочего каталога, чтобы быть именно там, где твой хозяин. chm находится.

Вы также можете указать некоторые аргументы командной строки.

http://www.help-info.de/en/Help_Info_HTMLHelp/hh_command.htm

Надежда, что помогает.

+0

Хорошее предложение. Хотя, если я изменю «текущий» каталог, я должен, вероятно, впоследствии его перезагрузить. Могут быть и другие вещи, полагающиеся на этот путь. – Liz

+0

Yup, как и ваши изображения, разрешение dll и т. Д. – phyatt

Смежные вопросы