在Qt应用程序中打开包含合并文件的chm文件

时间:2013-05-22 19:46:54

标签: qt merge chm

在我的Qt应用程序中,我们可以通过执行以下操作打开帮助文件(chm):

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

这似乎是建议的做事方式。它一直在努力。

但是,文档团队现在已经更改了chm文件的工作方式。现在我们引用一个“主”文件,该文件只包含对其他chm文件的引用。 chm文件的目录结构如下:

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

如果用hh.exe(Windows中的默认工具)打开master.chm文件,一切看起来都很完美。但是,从我的Qt应用程序中,帮助文件打开,但没有子主题,只有根节点。

我认为这是一个搜索路径问题,它无法解析相对路径。似乎没有任何方法可以将openURL调用配置为从某个目录或类似目录运行。

提前致谢

1 个答案:

答案 0 :(得分: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

并将工作目录指定为master.chm所在的位置。

您也可能想要指定一些命令行参数。

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

希望有所帮助。