Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x pyqt,如何与lambda一起使用sectionClicked_Python 3.x_Pyqt_Pyqt5 - Fatal编程技术网

Python 3.x pyqt,如何与lambda一起使用sectionClicked

Python 3.x pyqt,如何与lambda一起使用sectionClicked,python-3.x,pyqt,pyqt5,Python 3.x,Pyqt,Pyqt5,我正在尝试使用pyqt 使用“sectionClicked.connect”时,(如下图所示) 我可以使用默认的(?)参数(索引)传递给我 self.horizontalHeader = self.table.horizontalHeader() self.horizontalHeader.sectionClicked.connect(self.HeaderClicked) def HeaderClicked(index): ~~~ 在本例中,我想在def HeaderClicked处

我正在尝试使用pyqt

使用“sectionClicked.connect”时,(如下图所示) 我可以使用默认的(?)参数(索引)传递给我

self.horizontalHeader = self.table.horizontalHeader()
self.horizontalHeader.sectionClicked.connect(self.HeaderClicked)

def HeaderClicked(index):
  ~~~

在本例中,我想在def HeaderClicked处添加参数

如下

self.horizontalHeader = self.table.horizontalHeader()
self.horizontalHeader.sectionClicked.connect(lambda : self.HeaderClicked(foo, bar))

def HeaderClicked(index, foo, bar):
  ~~~

但像这样,我不能使用传递给我的参数

self.horizontalHeader = self.table.horizontalHeader()
self.horizontalHeader.sectionClicked.connect(self.HeaderClicked)

def HeaderClicked(index):
  ~~~


我该怎么办?

您可以为lambda表达式提供参数,以便执行类似操作

self.horizontalHeader.sectionClicked.connect(lambda index: self.HeaderClicked(index, foo, bar))

def HeaderClicked(index, foo, bar):
    ...
另一种选择是使用
functools.partial
而不是lambda表达式,即

from functools import partial

self.horizontalHeader.sectionClicked.connect(partial(HeaderClicked, foo=foo, bar=bar))