连接pyqt5信号(已通过参数)时将附加参数传递给函数

时间:2019-06-15 22:20:29

标签: python pyqt5

我正在编写pyqt5 GUI实用程序,并且在理解信号已经传递自己的自变量的情况下无法理解“正确的方式”来传递附加自变量以及信号时遇到问题。

例如,对于Qpushbuttons,我已经成功地做到了这一点:

self.pushButtonUpdateContentLeft.clicked.connect(lambda: 
        self.updatecontentlist(
        param1,
        param2
    ))

这在调用该函数时效果很好,该函数声明如下:

def updatecontentlist(self, param1, param2):
    <code block>

我遇到的问题是我现在想连接一个来自QListWidget的“双击”信号,并且该信号还发送自己的参数。如此有效:

    self.contentListWidgetLeft.itemDoubleClicked.connect(self.updatecontentlist)

    def updatecontentlist(self, clickeditem):
         <code block>

但这不是:

self.contentListWidgetLeft.itemDoubleClicked.connect(lambda:
      self.updatecontentlist(
      param1,
      param2))

def updatecontentlist(self, clickeditem, param1, param2):
     <code block>

当我尝试使用lambda添加额外的参数时,就像我对QPushButton所做的一样,我开始收到参数不匹配错误等。我似乎无法弄清楚执行此操作的正确语法是什么,或者是否有可能。能做到吗有更好的方法吗?

如果有问题,我将从QTDesigner中创建的.ui文件直接加载UI。

0 个答案:

没有答案