实战PyQt5: 124-在应用中访问系统的标准路径


实战PyQt5: 124-在应用中访问系统的标准路径文章插图
在一个应用中 , 往往需要保存一些临时数据 , 配置信息等等 。 例如 , 一个应用程序需要将下载好的文件保存在本地系统的某个地方 , 但是它不能确定指定磁盘上某个路径 , 因为这个路径可能在使用的系统上并不存在 。 又不期望应用程序将数据存放在工作目录中 。 这时候 , 使用系统提供的标准路径就是一个很好的选择 , 比如下载文件就可以存放在标准路径的" downloads"目录下 。
在Qt中 , QStandardPaths类提供了在不同系统下使用标准路径的统一方法 , 它可以非常方便地实现应用在存储临时数据和配置信息等功能 。
QStandardPaths简介QStandardPaths类提供了用于访问标准路径的方法 。 它包含用于查询本地文件系统上标准位置的函数 , 以执行常见任务 , 例如用户特定的目录或系统范围的配置目录 。
枚举量QStandardPaths.LocateOption可用于控制QStandardPaths对是否只返回文件或者目录 。

  • QStandardPaths.LocateFile (0x0): 只返回文件 。
  • QStandardPaths.LocateDirectory (0x1): 只返回目录 。
【实战PyQt5: 124-在应用中访问系统的标准路径】枚举量QStandardPaths.StandardLocation 用于控制查询各种不同的标准路径 。 该枚举中的一些值用于表示用户配置 , 这些枚举值会在不同的应用中返回相同的路径 , 因此它们可用于与其他应用程序共享数据 。
  • QStandardPaths.DesktopLocation (0): 返回用户的桌面目录 。 这是一个通用值 。 在没有桌面概念的系统上 ,它与QStandardPaths.HomeLocation相同 。
  • QStandardPaths.DocumentsLocation (1): 返回包含用户文档文件的目录 。 这是一个通用值 。 返回的路径永远不会为空 。
  • QStandardPaths.FontsLocation (2): 返回包含用户字体的目录 。 这是一个通用值 。 注意 , 安装字体可能需要其他与平台相关的操作 。
  • QStandardPaths.ApplicationsLocation (3): 返回包含用户应用程序的目录(可执行文件 , 应用程序包或它们的快捷方式) 。 这是一个通用值 。 注意 , 安装应用程序可能需要其他与平台相关的操作 。 此目录中的文件 , 文件夹或快捷方式是与平台相关的 。
  • QStandardPaths.MusicLocation (4): 返回包含用户音乐或其他音频文件的目录 。 这是一个通用值 。 如果不存在特定的音乐文件目录 , 则返回用于存储用户文档的路径 。
  • QStandardPaths.MoviesLocation (5): 返回包含用户的电影和视频的目录 。 这是一个通用值 。 如果不存在特定于电影文件的目录 , 则返回用于存储用户文档的路径 。
  • QStandardPaths.PicturesLocation (6): 返回包含用户图片或照片的目录 。 这是一个通用值 。 如果不存在特定于图片文件的目录 , 则返回用于存储用户文档的路径 。
  • QStandardPaths.TempLocation (7): 返回可以存储临时文件的目录 。 返回的值可能是与应用程序相关的的 , 用户可以在其他应用程序之间甚至可能是系统范围共享存储在这个路径中的数据 。 返回的路径永远不会为空 。
  • QStandardPaths.HomeLocation (8): 返回用户的主目录(与QDir.homePath()相同) 。 在Unix系统上 , 它等于HOME环境变量 。 该值可能是通用值 , 也可能是与应用程序相关的值 , 但是返回的路径永远不会为空 。
  • QStandardPaths.DataLocation (9): 返回与AppLocalDataLocation相同的值 。 不建议使用此枚举值 。 最好使用AppDataLocation , 因为在Windows上建议使用漫游路径(romaing path) 。
  • QStandardPaths.CacheLocation (10): 返回应在其中写入用户特定的非必需(缓存)数据的目录位置 。 这是一个和应用程序相关的目录 。 返回的路径永远不会为空 。
  • QStandardPaths.GenericCacheLocation (15): 返回应在该位置写入跨应用程序共享的用户特定的非必需(缓存)数据目录位置 。 这是一个通用值 。 请注意 , 如果系统没有共享缓存的概念 , 则返回的路径可能为空 。
  • QStandardPaths.GenericDataLocation (11): 返回一个可以存储跨应用程序共享的持久数据的目录位置 。 这是一个通用值 。 返回的路径永远不会为空 。
  • QStandardPaths.RuntimeLocation (12). 返回应该写入运行时通信文件的目录位置 , 例如Unix本地套接字 。 这是一个通用值 。 在某些系统上 , 返回的路径可能为空 。
  • QStandardPaths::ConfigLocation (13): 返回应在其中写入用户特定配置文件的目录位置 。 这可以是通用值 , 也可以是与应用程序相关的 , 并且返回的路径永远不会为空 。
  • QStandardPaths::DownloadLocation (14): 返回用户下载文件的目录 。 这是一个通用值 。 如果不存在特定的下载目录 , 则返回用于存储用户文档的路径 。