2024-05-29 02:45:53 发布
网友
示例:
我有三个按钮,都差不多。 我只想有一个插槽功能为所有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
所以我需要一些带参数的插槽。。在
Python(pyQt)能做些什么吗?在
您可以使用QObject::sender()函数对每个发送方、对象执行不同的操作,有关详细信息,请参见QObject documentation。在
QObject::sender()
connect需要的是任何可调用的Python对象。由于Python将函数作为第一类对象,因此使用包装器函数很容易实现。对于简单的情况,lambda可以:
connect
lambda
self.connect(pyuic4Button, SIGNAL("clicked()"), lambda: self.setPath("pyuic4")) self.connect(pyrcc4Button, SIGNAL("clicked()"), lambda: self.setPath("pyrcc4"))
我不使用PyQt,但是看看QSignalMapper文档,应该是一样的。基本上,它允许您将来自不同对象的信号映射到带有参数的插槽。在
您可以使用
QObject::sender()
函数对每个发送方、对象执行不同的操作,有关详细信息,请参见QObject documentation。在connect
需要的是任何可调用的Python对象。由于Python将函数作为第一类对象,因此使用包装器函数很容易实现。对于简单的情况,lambda
可以:我不使用PyQt,但是看看QSignalMapper文档,应该是一样的。基本上,它允许您将来自不同对象的信号映射到带有参数的插槽。在
相关问题 更多 >
编程相关推荐