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