繁体   English   中英

PyQt:QFileDialog.getExistingDirectory使用默认目录,用户独立

[英]PyQt: QFileDialog.getExistingDirectory using a default directory, user independant

使用QFileDialog.getExistingDirectory我找到了指定目录默认路径的方法。 我想在我的Linux(Mint)机器上的(用户)主文件夹中的某处使用默认目录。 我用了:

my_dir = QtGui.QFileDialog.getExistingDirectory(
    self,
    "Open a folder",
    "/home/my_user_name/",
    QtGui.QFileDialog.ShowDirsOnly
    )

哪个效果很好。 现在,下一个“级别”可以为每个用户执行此操作。 我尝试了标准的Linux方式并将/home/my_user_name/更改为~/ 那没用。 它导致工作目录而不是用户的目录。

从终端调用我的应用程序时,我应该使用更多系统参数吗? 或者我错过了PyQt功能?

您可以使用os.path.expanduser获取用户的主目录

>>> from os.path import expanduser
>>> expanduser("~")
/home/user_name

这适用于Windows和Linux。

那么你的代码块就是这样的

my_dir = QtGui.QFileDialog.getExistingDirectory(
    self,
    "Open a folder",
    expanduser("~"),
    QtGui.QFileDialog.ShowDirsOnly
)

您还可以通过os.getenv(varname)获取环境变量“HOME”, os.getenv(varname)为任何用户获取主文件夹。

>>> import os
>>> os.getenv("HOME")
'/home/my_user_name'

您的代码可能如下所示:

import os
home = os.getenv("HOME")

my_dir = QtGui.QFileDialog.getExistingDirectory(
    self,
    "Open a folder",
    home,
    QtGui.QFileDialog.ShowDirsOnly
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM