带参数的PyQt插槽

2024-05-29 02:45:53 发布

您现在位置:Python中文网/ 问答频道 /正文

示例:

我有三个按钮,都差不多。 我只想有一个插槽功能为所有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 

所以我需要一些带参数的插槽。。在

^{pr2}$

Python(pyQt)能做些什么吗?在


Tags: 功能示例for参数ifdefbuttoncommon
3条回答

您可以使用QObject::sender()函数对每个发送方、对象执行不同的操作,有关详细信息,请参见QObject documentation。在

connect需要的是任何可调用的Python对象。由于Python将函数作为第一类对象,因此使用包装器函数很容易实现。对于简单的情况,lambda可以:

    self.connect(pyuic4Button, SIGNAL("clicked()"),
            lambda: self.setPath("pyuic4"))
    self.connect(pyrcc4Button, SIGNAL("clicked()"),
            lambda: self.setPath("pyrcc4"))

我不使用PyQt,但是看看QSignalMapper文档,应该是一样的。基本上,它允许您将来自不同对象的信号映射到带有参数的插槽。在

相关问题 更多 >

    热门问题