Python 使用变量而不是文字字符串,使用PyQt5 QtFileDialog.getOpenFileName()指定路径

Python 使用变量而不是文字字符串,使用PyQt5 QtFileDialog.getOpenFileName()指定路径,python,pyqt,Python,Pyqt,如果我这样做: self.file_dialog, _ = QFileDialog.getOpenFileName(self, "Open a calendar event(s) file", "/home/mdavies/Desktop/", "iCalendar Files (*.ics)") 文件对话框将在正确的文件夹/home/mdavies/Desktop/中打开。但是,如果我尝试对路径使用变量而不是文字: from os.path impor

如果我这样做:

self.file_dialog, _ = QFileDialog.getOpenFileName(self, "Open a calendar event(s) file", "/home/mdavies/Desktop/",
                    "iCalendar Files (*.ics)")
文件对话框将在正确的文件夹/home/mdavies/Desktop/中打开。但是,如果我尝试对路径使用变量而不是文字:

from os.path import expanduser

folder = expanduser("~/Desktop")

self.file_dialog, _ = QFileDialog.getOpenFileName(self, "Open a calendar event(s) file", folder,
                    "iCalendar Files (*.ics)")
我正在使用Python 3.5.2和PyQt 5.5.1在Kubuntu 16.04上运行代码


任何帮助都将不胜感激。

我事后发现了一个显而易见的解决方案,这意味着我不必使用变量:

self.file_dialog, _ = QFileDialog.getOpenFileName(self, "Open a calendar event(s) file", expanduser("~/Desktop"),
                    "iCalendar Files (*.ics)")

仍然不清楚为什么变量不起作用。

我已经测试了您的代码,它可以工作,我发现您有问题是非常奇怪的。