例:
我有三个按钮,所有几乎都相同.我希望所有3个按钮只有1个插槽功能.
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
Run Code Online (Sandbox Code Playgroud)
所以我需要像参数插槽一样的东西..
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))
Run Code Online (Sandbox Code Playgroud)
Python(pyQt)可以做些什么吗?
什么connect需要是任何可调用的 Python对象.由于Python具有作为第一类对象的功能,因此使用包装函数很容易实现.对于简单的情况,a lambda会做:
self.connect(pyuic4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyuic4"))
self.connect(pyrcc4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyrcc4"))
Run Code Online (Sandbox Code Playgroud)