Bonjour,
J’aimerais avoir des éclaircissement sur l’utilité et la signification d’ajouter lambda:
quand certaines fonctions sont utilisées en paramètre d’autres fonctions.
Je pense au code trouvé ici dans lequel les fonctions whichbtn
et btnstate
sont très similaires, avec l’exception que l’une d’entre-elles a un paramètre d’entrée. L’appel dans le clicked.connect
diffère par un lambda:
, et malgré l’explication quelques lignes plus haut, je ne saisis pas bien ce que ca fait et veut dire.
J’ai eu le même soucis dans mon code, avec la même solution que je ne comprends pas.
class AddSentence(Main):
fieldsY=100
fieldsX=100
fieldWidth=850
def setUI(self):
super().setUI()
self.translationField=QLineEdit(self)
self.translationField.move(self.fieldsX,self.fieldsY)
self.translationField.resize(self.fieldWidth,50)
self.translationOK=QPushButton("Valider",self)
self.translationOK.move(self.fieldsX+self.fieldWidth+50,self.fieldsY)
self.translationOK.resize(100,50)
self.translationOK.clicked.connect(lambda: self.onClickedValider(self.translationField))
def setUIList(self):
pass
def onClickedValider(self,translationField):
sentenceList.append(translationField.text())
translationField.setText("")
self.setUIList()
self.update()
Sans ce lambda:
, je me prends une erreur TypeError: argument 1 has unexpected type 'NoneType'
.
J’ai cherché un peu sur mon moteur de recherche préféré, mais je ne trouve que des explications sur comment définir une fonction en utilisant le mot clé lambda, rien qui ne se rapproche de ce cas-ci.
Merci d’avance !