gpt4 book ai didi

c++ - Qt 应用程序有意外的 QDir::currentPath

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:02 35 4
gpt4 key购买 nike

我在我的 Qt 应用程序中使用 QSettings 来存储首选项,一切都很好,直到我开始在 Linux mint 19 上运行它。设置文件的默认位置是应用程序文件夹,但现在它正在创建在用户主文件夹中。

QDir::currentPath() 如果我通过双击运行应用程序,则返回主文件夹,如果我从终端运行它,则返回正确的可执行文件位置。我以前从未见过这个。也许有人知道如何通过双击它自己的文件夹来修复它并运行应用程序。

最佳答案

不要依赖于当前工作目录(由 QDir::currentPath() 返回),因为它基本上可以是任何东西。当您通过双击运行软件时,看起来您的桌面环境的文件管理器将当前目录设置为主文件夹,这通常是明智的,因为这通常是用户在从应用程序等打开文件时想要的。

如果我没看错你想要的,那就是存储设置的应用程序文件夹的路径,你需要QCoreApplication::applicationDirPath() .但请注意,这样做会强制您将应用程序安装到用户主文件夹(因为您不能写入像 /user/local/bin 这样的系统文件夹,并且您不应该通过更改权限)。

根据评论,似乎 QCoreApplication::applicationDirPath() 给出了错误的目录,但是 QCoreApplication::applicationFilePath() 给出了正确的路径。如果确实如此,则获取文件路径,并从中删除可执行文件。然而,看着the Qt source ,这应该是不可能的,因为 applicationDirPath() 已经做到了......


我建议您改用 QSettings 作为 documented in its basic usage .

关于c++ - Qt 应用程序有意外的 QDir::currentPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722763/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com