2016-05-11 40 views
0

我的問題是,當我在pyqt中觸發一個Qaction來打開一個QDialog時,我曾經使用lambda函數(傳遞參數),但是當我測試的GUI,我開了第一次對話,但是,當我打開一秒鐘的時間,殼拋出我這個錯誤Pyqt Signal打開對話框的lambda函數錯誤:對象Ui_dialog不可調用

Traceback (most recent call last): 
    File "C:\path\to\file\launcher.py", line 51, in <lambda> 
    self.ui.actionIngresar_Licencia.triggered.connect(lambda: self.Dlg_IngresarLicencia()) 
TypeError: 'Ui_dialogoLicencia' object is not callable 

好了,你可以說我,我不傳遞任何參數,但是如果當我需要傳遞參數時出現這個錯誤,它會很糟糕。當我放入不帶lambda函數的函數時,gui完美地工作 這裏是對話框的功能。

def Dlg_IngresarLicencia(self): 
    self.Dlg_IngresarLicencia = Ui_dialogoLicencia() 
    self.dialogo = QtGui.QDialog(parent=None) 
    self.Dlg_IngresarLicencia.setupUi(self.dialogo) 
    self.Dlg_IngresarLicencia.btn_ObtenerLicencia.clicked.connect(lambda: Componentes().clickObtenerLicencia()) 
    self.dialogo.show() 

感謝球員,我希望你能幫助我

回答

1

你的方法被稱爲同你設置屬性:

def Dlg_IngresarLicencia(self): 
    self.Dlg_IngresarLicencia = Ui_dialogoLicencia() 

正因爲如此,第一個電話後,您使用Ui_dialogoLicencia實例覆蓋該方法,該實例不可調用。

+0

我覺得像一個dor.k感謝您的答案男人! – Pastrana27