0

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

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

这似乎是建议的做事方式。它一直工作到现在。

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

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

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

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

提前致谢

4

1 回答 1

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

希望有帮助。

于 2013-05-22T21:05:51.897 回答