[英]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.