Aşağıdaki sorunla karşılaşıyorum. Sonrasında bazı ekstra verileri iletmek için bir Lambda işlevini bir Sinyala bağlamaya çalışıyorum. Ben createTimeComboBox(),
çalıştırdığınızdaPyQT Lambda işlevinin Sinyal'e bağlanması
def createTimeComboBox(self,slotCopy):
timeComboBox = QComboBox()
#...
cmd = lambda func=self.test:func()
self.connect(timeComboBox, SIGNAL("currentIndexChanged(int)"),cmd)
#...
def test(self, value):
print value
bu hatayı alıyorum:
TypeError: 'int' object is not callable
self.connect(timeComboBox, SIGNAL("currentIndexChanged(int)"),self.test)
çalışıyor
içinself.connect(timeComboBox, SIGNAL("currentIndexChanged(int)"),cmd)
değiştirilmesi, ama muktedir istiyorumgeçmekdeğişken de, yani lambda
yaklaşımını kullanmam gerektiğini varsaydım.
Bunu daha önce QPushButton
'un clicked()
sinyaliyle yapmıştım ve bu iyi çalıştı.
Umarım bu mantıklıdır - herhangi bir fikri olan var mı? Önerileriniz için teşekkürler! Alkış Dave bu sizin için çalışıyorsa
Awesome teşekkür ederim, bu bir tedavi çalıştı! Bunu açıkladığın için teşekkürler! –
Ayrıca benden, Parametrenin üzerine yazıldığını nasıl bildiniz? – user1767754
@ user1767754 bu yolla Qt. Yuvalar aynı veya daha az argümana sahip olabilir ve ekstralar göz ardı edilir. Ama kalanlar geçecek. Bu argüman için bir varsayılanınız olup olmadığı önemli değildir. Bir sinyal bir argümanı geçerse, eğer yapabilirse slot alacaksınız. – Avaris