使用默认程序打开txt文件

Open txt file with default program

本文关键字:txt 文件 程序 默认      更新时间:2023-10-16

在我的程序中,我有一个按钮,我想打开相对目录中的文本文件。我使用的QDesktopServices是这样的:

QDesktopServices::openUrl(QUrl::fromLocalFile("file:///stuff/block_settings.txt"));

按下按钮时,什么也不会发生。

该文件位于名为"stuff"的文件夹中,与我的.exe位于同一位置。它与我所有其他任务使用的目录相同。

我做错了什么?

谢谢。

文件位于名为"东西";与我的.exe位于同一位置。它是用于我所有其他任务的同一目录。我做错了什么?

您的完整路径似乎过于复杂。我建议使用这个插件:

QString QCoreApplication::applicationDirPath()[static]

返回包含应用程序可执行文件的目录。

例如,如果您在C:\Qt目录中安装了Qt,并且运行regexp示例,则此函数将返回"C:/Qt/examples/tools/regexp";。

在Mac OS X上,这将指向实际包含可执行文件的目录,该目录可能位于应用程序捆绑包内(如果应用程序是捆绑的)。

警告:在Linux上,此函数将尝试从/proc文件系统获取路径。如果失败,则假定argv[0]包含可执行文件的绝对文件名。该函数还假定当前目录未被应用程序更改。

因此,您将编写以下代码:

QDesktopServices::openUrl(QString("%1/stuff/block_settings.txt")
.arg(QCoreApplication::applicationDirPath()));

我解决了这个问题。更改为:

QDesktopServices::openUrl(QUrl("file:stuff\block_settings.txt"));

不确定它是如何工作的,因为我在任何地方的教程中都没有看到这种配置,只有带