如何在Qt GUI应用程序中附加MS Word文档?

3
我写了一个Qt小部件应用程序。在文件菜单中,我想插入一个MS Word文档作为用户手册。有什么方法可以做到吗?我查看了Qt帮助和各种博客,但它们都没有给出清晰的解决方案。

1
使用MS Word文档作为用户手册的特定原因是什么?为什么不使用纯文本或HTML格式? - vahancho
@vahancho谢谢你的回复。我已经创建了一个带有图片和所有内容的.doc手册。所以想要重新使用这些内容。有没有办法直接嵌入.doc文件? - Naveen kumar Katta rathanaiah
Qt支持将COM对象嵌入小部件(请参阅QAxObject手册),但是您在这方面所花费的精力远远超过将手册转换为任何其他“可移植”格式。 - vahancho
2
为什么不将你的文档导出为PDF呢?相比Word,PDF更加便携,并且在Word 2007+中只需简单点击即可完成。然后你可以使用@Chernobyl的建议,让系统自行决定如何打开PDF文档(应该不会有问题...)。 - Félix Cantournet
2个回答

3
如果只是手动操作,那么没有必要在应用程序中嵌入 MS Word。也许可以尝试使用安装在计算机上的 Word 打开所需文档。请尝试以下代码:
QDesktopServices::openUrl(QUrl("file:///G:/tst.docx"));

只需设置所需路径。正如文档所述:

如果URL是对本地文件的引用(即URL方案为“file”),则它将被打开适当的应用程序而不是Web浏览器。


谢谢 @Chernobyl,它以最小的努力解决了我的问题 :) - Naveen kumar Katta rathanaiah

1
如果您想将它嵌入到应用程序可执行文件中,只需将您的.docx文件插入为资源文件。要从资源中打开docx文件,您应该首先将其复制到某个位置,例如应用程序目录路径:
QFile HelpFile("qrc:/myFile.docx");;
HelpFile.copy(qApp->applicationDirPath().append("/myFile.docx"));

接下来,您可以通过以下方式打开它:

QDesktopServices::openUrl(QUrl::fromLocalFile(qApp->applicationDirPath().append("/myFile.docx")));

1
减少部署痛苦的好方法。我会使用临时路径,因为你不能指望用户对应用程序目录(例如Linux)具有写访问权限。 - Simon Warta
@SimonWarta 你是对的。最好使用QStandardPath来获取可写位置。 - Nejat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接