2016-10-11 237 views
1

我正在學習計算機科學的課程,無法計算出該代碼片段不工作的原因。我嘗試連接,我已經PyQt4中,這樣,當它被按下它創建了一個按鈕,顯示目錄對話:名稱錯誤:未定義名稱'QFileDialog'

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

QFileDialog是在QtGui module,所以你需要追加,爲您的生產線的開頭,如:

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

另外,如果你想使用QFileDialog沒有前面的QtGui,你需要導入它從模塊(在你的文件的頂部),具有:

from PyQt4.QtGui import QFileDialog 

或爲QT5(注意,在QT5,QFileDialog移到QtWidgets模塊):

from PyQt5.QtWidgets import QFileDialog 
+0

我試過你的解決方案,不幸的是它出現了以下錯誤。我正在使用學校電腦,所以它可能只是因爲它缺少某種圖書館。 –

+0

'code'Traceback(最新最後調用): 文件 「d:\ NEA項目\ NEA_UI.py」,線路161,在 ui.setupUi(對話) 文件「d:\ NEA項目\ NEA_UI.py 「,第49行,在setupUi file = str(QFileDialog.getExistingDirectory(self,」Select Directory「)) TypeError:QFileDialog.getExistingDirectory(QWidget parent = None,str caption ='',str directory ='',QFileDialog。文件「D:\ NEA Project \ NEA_UI.py」,第161行,在 ui.setupUi(選項選項= QFileDialog.ShowDirsOnly):參數1有意想不到的類型'Ui_Dialog' –

+0

'追溯(最近呼叫最後一個): 對話框) 文件「D:\ NEA Project \ NEA_UI.py」,第49行,在setupUi 文件中= str(QFileDialog.getExistingDirectory(self,「Select Directory」)) TypeError:QFileDialog.getExistingDirectory(QWidget parent = None,str caption ='',str directory ='',QFileDialog.Options options = QFileDialog.ShowDirsOnly):argument 1有意想不到的類型'Ui_Dialog'' –