Pyqt信号打开对话框lambda函数错误:对象Ui\u对话框不是callab

2024-09-29 23:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是,当我在pyqt中触发一个Qaction来打开一个QDialog时,我通常使用lambda函数(传递参数),但是当我测试GUI时,我第一次打开了对话框,但是当我第二次打开时,shell抛出了这个错误

    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()

谢谢你们,希望你们能帮我


Tags: lambda函数selfui参数connect错误pyqt
1条回答
网友
1楼 · 发布于 2024-09-29 23:20:50

方法的调用与正在设置的属性的调用相同:

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

因此,在第一次调用之后,您将使用Ui_dialogoLicencia实例重写该方法,该实例是不可调用的。你知道吗

相关问题 更多 >

    热门问题