我正在为计算机科学课程工作,但无法弄清楚代码为什么不起作用。我正在尝试连接在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
任何关于这个问题的帮助都将不胜感激。
self
参数的类型。它需要是Qt类型(QWidget
),但它不是。在你的例子中,self
是什么? - mfitzpUi_Dialog
是什么?它是QWidget
类型吗?如果不是,你需要将父窗口作为第一个参数传递给你的QFileDialog
(例如你的QMainWindow
实例)。 - mfitzpself
参数只需要是“拥有”对话框的东西。我通常传递主窗口,但这并不重要。 - mfitzpQLineEdit
,因为它更适合这个操作。 - mfitzp