【问题标题】:How can I get "ProgramData" path using QStandardPaths如何使用 QStandardPaths 获取“ProgramData”路径
【发布时间】:2015-10-13 08:15:19
【问题描述】:

有没有办法在 QT 中使用QStandardPaths 获取ProgramData 路径。

详情:

  1. 我想知道如何使用 QStandardPaths 类的函数获取ProgramData 路径。
  2. 我想要跨平台解决方案,这就是我想要使用 QStandardPaths 的原因。我相信 QT 提供了这样的解决方案,但我找不到它。
  3. 人们可能会问我为什么要这样做,或者可能会建议使用ProgramData 路径不好。首先,我打算在那里复制我的应用程序的用户独立配置文件。我希望所有用户都能够访问该文件,仅用于阅读。我将在设置步骤中找到必要的文件。 (不过,如果这不是一个好方法,我们可以讨论这种情况)

我已经尝试过的:

  1. QStringList locations = QStandardPaths::locateAll(QStandardPaths::DataLocation, QString(), QStandardPaths::LocateDirectory);

  2. QStringList locations2 = QStandardPaths::standardLocations(QStandardPaths::DataLocation);

  3. 我尝试以管理员身份运行我的 QT(以查看问题是否是由于某些权限问题引起的),但没有任何改变

使用第 1 点和第 2 点的函数,我还尝试使用 QStandardPaths::GenericDataLocation 作为标准位置类型。实际上,我已经尝试了 this 链接中的所有类型,其解释中包含“ProgramData”

最后,我得到的是:

  1. C:/Users/myUser/AppData/{Local|Roaming}

  2. /数据

  3. QString

【问题讨论】:

  • 这并不能真正直接回答您的问题,但为了存储与用户无关的配置,我建议使用QSettingsQSettings::SystemScope
  • 我们不能使用这样的东西 QString path1 = "C:/ProgramData/"; QDir dir1(path1); dir1.setFilter(QDir::NoDotAndDotDot|QDir::Files);不确定只是问

标签: c++ windows qt


【解决方案1】:

这看起来像是 Qt 中的一个错误,已在 QTBUG-44348QTBUG-40565 中报告

【讨论】:

    猜你喜欢
    • 2012-06-27
    • 2015-07-14
    • 2020-11-23
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2020-02-22
    • 2011-02-12
    相关资源
    最近更新 更多