• QStandardPaths


    一、描述

    此类提供了访问标准路径的方法。

    二、类型成员

    1、enum QStandardPaths::LocateOption:此枚举描述了可用于控制 locate() 和 locateAll() 行为的标志。

    • LocateFile:返回文件
    • LocateDirectory:返回目录

    2、enum QStandardPaths::StandardLocation:此枚举描述了可以使用诸如 writableLocation()、standardLocations() 和 displayName() 等方法查询的不同位置。

    • DesktopLocation:返回用户的桌面目录。在没有桌面概念的系统上,这与 HomeLocation 相同。
    • DocumentsLocation:返回包含用户文档文件的目录。返回的路径永远不会为空。
    • FontsLocation:返回包含用户字体的目录。
    • ApplicationsLocation:返回包含用户应用程序(可执行文件、应用程序包或它们的快捷方式)的目录。此目录中的文件、文件夹或快捷方式是特定于平台的。
    • MusicLocation:返回包含用户音乐或其他音频文件的目录。
    • MoviesLocation:返回包含用户电影和视频的目录。
    • PicturesLocation:返回包含用户图片或照片的目录。
    • TempLocation:返回可以存储临时文件的目录。返回的值可能是特定于应用程序的,在此用户的其他应用程序之间共享,甚至是系统范围的。返回的路径永远不会为空。
    • HomeLocation:返回用户的主目录(与 QDir::homePath() 相同)。在 Unix 系统上,这等于 HOME 环境变量。
    • AppLocalDataLocation:返回 Windows 操作系统上的本地设置路径。在所有其他平台上,它返回与 AppDataLocation 相同的值。
    • CacheLocation:返回应写入用户特定的非必要(缓存)数据的目录位置。这是一个特定于应用程序的目录。返回的路径永远不会为空。
    • GenericCacheLocation:返回可以存储跨应用程序共享的缓存数据的目录位置。如果系统没有共享缓存的概念,则返回的路径可能为空。
    • GenericDataLocation:返回可以存储跨应用程序共享的持久数据的目录位置。返回的路径永远不会为空。
    • RuntimeLocation:返回应该写入运行时通信文件的目录位置,例如 Unix 本地套接字。在某些系统上,返回的路径可能为空。
    • ConfigLocation:返回应该写入用户特定配置文件的目录位置。返回的路径永远不会为空。
    • DownloadLocation:返回用户下载文件的目录。
    • GenericConfigLocation:返回应该写入多个应用程序之间共享的用户特定配置文件的目录。返回的路径永远不会为空。
    • AppDataLocation:返回可以存储持久应用程序数据的目录位置。这是一个特定于应用程序的目录。返回的路径永远不会为空。
    • AppConfigLocation:返回应写入用户特定配置文件的目录位置。这是一个特定于应用程序的目录,返回的路径永远不会为空。

    三、成员函数

    1、【static】QString displayName(QStandardPaths::StandardLocation type)

    返回给定位置类型的本地化显示名称或空 QString。

    1. const QMetaObject &mo = QStandardPaths::staticMetaObject;
    2. QMetaEnum metaEnum = mo.enumerator(mo.indexOfEnumerator("StandardLocation"));
    3. for (int i = 0; i < metaEnum.keyCount(); ++i)
    4. {
    5. qDebug()<key(i)<<" "<displayName(static_cast(metaEnum.value(i)));
    6. }

     

    2、【static】QString findExecutable(const QString &executableName, const QStringList &paths = QStringList())

    在指定路径中查找名为 executableName 的可执行文件,如果 paths 为空,则查找系统路径。

    在大多数操作系统上,系统路径由 PATH 环境变量确定。

    注意:在 Windows 上,会自动附加通常的可执行扩展(来自 PATHEXT 环境变量)。

    例如,findExecutable("foo") 调用会查找 foo.exe 或 foo.bat(如果存在)。

    返回可执行文件的绝对文件路径,如果未找到则返回空字符串。

    3、【static】QString locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)

    在 type 的标准位置查找名为 fileName 的文件或目录。

    options 标志指定查找文件或目录。

    返回找到的第一个文件或目录的绝对路径或者返回空字符串。

    4、【static】QStringList locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)

    在 type 的标准位置中按名称 fileName 查找所有文件或目录。

    options 标志指定查找文件或目录。

    返回找到的所有文件的列表。

    5、【static】void setTestModeEnabled(bool testMode)

    是否在 QStandardPaths 中启用特殊的“测试模式”,它将可写位置更改为指向测试目录。这可以防止自动测试读取或写入当前用户的配置。

    它会影响测试程序可能写入文件的位置:

    • GenericDataLocation
    • AppDataLocation
    • ConfigLocation
    • GenericConfigLocation
    • AppConfigLocation
    • GenericCacheLocation
    • CacheLocation

    其他位置不受影响。

    • 在 Unix 上,XDG_DATA_HOME 设置为 ~/.qttest/share,XDG_CONFIG_HOME 设置为 ~/.qttest/config,XDG_CACHE_HOME 设置为 ~/.qttest/cache。
    • 在 macOS 上,数据转到 ~/.qttest/Application Support,缓存转到 ~/.qttest/Cache,配置转到 ~/.qttest/Preferences。
    • 在 Windows 上,所有内容都转到 %APPDATA% 下的“qttest”目录。

    6、【static】QStringList standardLocations(QStandardPaths::StandardLocation type)

    返回类型文件所属的所有目录。

    1. #include
    2. #include
    3. int main(int argc, char *argv[])
    4. {
    5. const QMetaObject &mo = QStandardPaths::staticMetaObject;
    6. QMetaEnum metaEnum = mo.enumerator(mo.indexOfEnumerator("StandardLocation"));
    7. for (int i = 0; i < metaEnum.keyCount(); ++i)
    8. {
    9. qDebug()<key(i)<<" -- "<standardLocations(static_cast(metaEnum.value(i)));
    10. }
    11. }

    7、【static】QString writableLocation(QStandardPaths::StandardLocation type)

    返回类型文件应写入的目录。

    返回的存储位置可能不存在,即它可能需要由系统或用户创建。

    1. const QMetaObject &mo = QStandardPaths::staticMetaObject;
    2. QMetaEnum metaEnum = mo.enumerator(mo.indexOfEnumerator("StandardLocation"));
    3. for (int i = 0; i < metaEnum.keyCount(); ++i)
    4. {
    5. qDebug()<key(i)<<" -- "<writableLocation(static_cast(metaEnum.value(i)));
    6. }

     

  • 相关阅读:
    android UI到系统揭秘
    感受 OpenDNS
    2022-11-08 mysql列存储引擎-自定义函数-无joinList-生成派生表-临时方案记录
    智能化燃气场站建设4要点!
    [iOS界面切换- Present And Push]
    pytorch单精度、半精度、混合精度、单卡、多卡(DP / DDP)、FSDP、DeepSpeed模型训练
    华为设备MFF配置命令
    【Excel】【latex】将EXCEL中单元格的计算关系还原为公式,用c#重构
    基于阿基米德优化优化的BP神经网络(分类应用) - 附代码
    2023年软件开发领域的发展趋势
  • 原文地址:https://blog.csdn.net/kenfan1647/article/details/126294362