名称错误:名称' QFileDialog'未定义

时间:2016-10-11 08:56:26

标签: python pyqt qfiledialog

我正在从事计算机科学的课程学习,并且无法弄清楚为什么这段代码不起作用。我正在尝试连接我在PyQt4中创建的按钮,以便在按下它时显示目录对话框:

self.Browse_Button_1 = QtGui.QToolButton(self.tab)
    self.Browse_Button_1.setGeometry(QtCore.QRect(360, 30, 61, 20))
    self.Browse_Button_1.setObjectName(_fromUtf8("Browse_Button_1"))
    file = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
    self.Browse_Button_1.clicked.connect(self, file)

然而,每次运行程序时,我都会收到此错误:

Traceback (most recent call last):
   File "D:\NEA Project\NEA_UI.py", line 194, in <module>
     ui = Ui_Dialog()
   File "D:\NEA Project\NEA_UI.py", line 30, in __init__
     self.setupUi(self)
   File "D:\NEA Project\NEA_UI.py", line 55, in setupUi
     file = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
NameError: name 'QFileDialog' is not defined

非常感谢任何有关此问题的帮助。

1 个答案:

答案 0 :(得分:3)

QFileDialog位于QtGui module,因此您需要将其附加到行的开头,例如:

file = str(QtGui.QFileDialog.getExistingDirectory(self, "Select Directory"))

或者,如果您想使用前面没有QFileDialog的{​​{1}},则需要从模块(位于文件顶部)导入它,并使用:

QtGui

或者对于Qt5(请注意,在Qt5中,from PyQt4.QtGui import QFileDialog 已移至QFileDialog模块):

QtWidgets