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

在Qt应用程序中打开包含合并文件的chm文件,qt,merge,chm,Qt,Merge,Chm,在我的Qt应用程序中,我们可以通过执行以下操作打开帮助文件(chm): QDesktopServices::openUrl(QUrl::fromLocalFile(_PathToTheCHMFile)); 这似乎是建议的做事方式。到目前为止,它一直在发挥作用 然而,文档团队现在已经改变了chm文件的工作方式。现在我们正在引用一个“主”文件,它只包含对其他chm文件的引用。chm文件的目录结构如下所示: master.chm SUBDIR/ -> child1.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调用配置为从某个目录或类似目录运行


提前感谢

如果您需要能够正确访问这些元素,则可能需要动态更改应用程序的当前目录

如果这不起作用,您可能需要研究使用
QProcess::startDetached

并将工作目录指定为master.chm的确切位置

您可能还需要指定一些命令行参数


希望能有所帮助。

好建议。虽然如果我更改“当前”目录,我可能应该在以后重置它。可能还有其他东西依赖于该路径。是的,比如你的图像,或者dll分辨率,等等。