Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt:QFileDialog.getExistingDirectory使用默认目录,用户独立_Python_Pyqt - Fatal编程技术网

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

Python PyQt:QFileDialog.getExistingDirectory使用默认目录,用户独立,python,pyqt,Python,Pyqt,使用QFileDialog.getExistingDirectory时,我找到了指定目录默认路径的方法。我想在Linux(Mint)机器上的(用户)主文件夹中的某个地方使用默认目录。我用过: my_dir = QtGui.QFileDialog.getExistingDirectory( self, "Open a folder", "/home/my_user_name/", QtGui.QFileDialog.ShowDirsOnly ) 它工作得很

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

my_dir = QtGui.QFileDialog.getExistingDirectory(
    self,
    "Open a folder",
    "/home/my_user_name/",
    QtGui.QFileDialog.ShowDirsOnly
    )
它工作得很好。下一个“级别”是现在能够为每个用户做到这一点。我尝试了标准的Linux方式,并将
/home/my_user\u name/
更改为
~/
。那是行不通的。结果是工作目录而不是用户的目录


从终端调用我的应用程序时是否应该使用更多系统参数?还是我缺少一个PyQt函数

您可以使用

这适用于Windows和Linux

您的代码块将如下所示

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

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

您的代码可能如下所示:

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

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

只是忘了使用操作系统模块。也许给我一个更广泛的建议。合并更多模块(到目前为止,我的项目还不是很大)。
>>> 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
    )