![](/img/trans.png)
[英]Does QFileDialog.getExistingDirectory() recognize %USERNAME%?
[英]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.