例子:
我有三个按钮,都差不多。
我想只有一个插槽功能,所有3个按钮。
def slotButtons(nr_button):
#common part
if(nr==1):
#for button 1
else if(nr==2):
#for button 2
else if(nr==3):
#for button 3
#common part
所以我需要一些像带参数的插槽。。
QtCore.QObject.connect(pushButton1, QtCore.SIGNAL("clicked()"), slotButtons(1))
QtCore.QObject.connect(pushButton2, QtCore.SIGNAL("clicked()"), slotButtons(2))
QtCore.QObject.connect(pushButton3, QtCore.SIGNAL("clicked()"), slotButtons(3))
Python(pyQt)能做些什么吗?
最佳答案
connect
需要的是任何可调用的Python对象。由于Python具有作为一级对象的函数,这很容易用包装函数实现。对于简单的情况,alambda
可以:
self.connect(pyuic4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyuic4"))
self.connect(pyrcc4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyrcc4"))