示例:
我有三个按钮,所有的按钮几乎都一样。 我只想为所有 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
所以我需要一些像带参数的插槽之类的东西..
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 将函数作为一等对象,因此可以使用包装函数轻松实现。对于简单的情况,lambda
可以:
self.connect(pyuic4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyuic4"))
self.connect(pyrcc4Button, SIGNAL("clicked()"),
lambda: self.setPath("pyrcc4"))
关于python - PyQt - 带参数的插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646587/