我正在从事计算机科学的课程学习,并且无法弄清楚为什么这段代码不起作用。我正在尝试连接我在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
非常感谢任何有关此问题的帮助。
答案 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