繁体   English   中英

使用默认程序打开txt文件

[英]Open txt file with default program

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

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

当按下按钮时,什么也没有发生。

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

我究竟做错了什么?

谢谢。

该文件位于名为“ stuff”的文件夹中,该文件夹与我的.exe位于同一位置。 这是我所有其他任务所使用的目录。 我究竟做错了什么?

似乎您的完整路径太复杂了。 我建议使用此界面:

QString QCoreApplication :: applicationDirPath()[静态]

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

例如,如果您在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"));

不确定如何工作,因为除了w / e,我在任何教程上都看不到该配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM