c++ - 如何使用 Qt 程序中的默认应用程序打开具有相对路径的 pdf

标签 c++ qt

我正在尝试从我的应用程序中打开某些硬件的 pdf 手册。它将从帮助菜单中触发。我似乎无法让我的应用程序使用操作系统默认应用程序从相对路径打开文件。我发现

QDesktopServices::openUrl(QUrl("file:///home/folder/Manual.pdf")); 

在 Qt 论坛上引用,这对我有用,除非我要在另一台计算机上安装我的软件,并且绝对路径不会相同。我想将手册安装在我的应用程序旁边,并使用类似的内容打开它

QDesktopServices::openUrl(QUrl("file:///Manual.pdf"));

但是无法使用

打开
ShellExecute 'file:///Manual.pdf' failed (error 2).

以前有人这样做过吗?

最佳答案

您可以使用

检索绝对路径
QString a = QFileInfo("Manual.pdf").absoluteFilePath();

然后将其传递给 QUrl,如下所示:

QUrl url = QUrl::fromLocalFile(a);

关于c++ - 如何使用 Qt 程序中的默认应用程序打开具有相对路径的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47706073/

相关文章:

c++ - 如何从 boost 库中取出单个元素(例如 shared_ptr)?

css - Qt 一个元素的多种类型的样式(QLabel、QPushbutton,...)

c++ - 在 x86 和 arm7 平台的 Windows 10 Store 中发布 Qt 应用程序

c++ - Qt MainWindow 在 Linux 中的位置

c++ - 类模板和模板类

c++ - 在模板实例化之间共享静态成员? (不可能的?)

c++ - Visual C++ 速成版

c++ - 在 Windows 上安装 QJson

c++ - 类图中B类中A类的对象

c++ - 简单的跨平台 TCP IP API?