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

时间:2014-07-14 14:59:14

标签: python pyqt

使用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功能?

2 个答案:

答案 0 :(得分:6)

您可以使用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
)

答案 1 :(得分:1)

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

>>> 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
    )