Python 将参数传递给QWidget.mousePressEvent

Python 将参数传递给QWidget.mousePressEvent,python,qt,pyqt,Python,Qt,Pyqt,我正在覆盖QWidget.mousePressEvent,如下所示: widget = QtWidgets.QWidget() widget.mousePressEvent = my_function def my_function(QMouseEvent): print('Mouse Pressed') for index in range(10): widget = QtWidgets.QWidget() widget.mousePressEvent = my_f

我正在覆盖QWidget.mousePressEvent,如下所示:

widget = QtWidgets.QWidget()
widget.mousePressEvent = my_function

def my_function(QMouseEvent):
    print('Mouse Pressed')
for index in range(10):
    widget = QtWidgets.QWidget()
    widget.mousePressEvent = my_function(index)

def my_function(QMouseEvent, index):
    print(index)
但我的问题是,我现在如何传递一个变量?我需要这样的东西:

widget = QtWidgets.QWidget()
widget.mousePressEvent = my_function

def my_function(QMouseEvent):
    print('Mouse Pressed')
for index in range(10):
    widget = QtWidgets.QWidget()
    widget.mousePressEvent = my_function(index)

def my_function(QMouseEvent, index):
    print(index)

使用
functools.partial

从functools导入部分
def my_函数(索引、QMouseEvent):
打印(索引)
对于范围(10)中的索引:
widget=qtwidts.QWidget()
widget.mousePressEvent=partial(my_函数,索引)
或者使用lambda

widget.mousePressEvent=lambda:event,index=index:my_函数(index,event)

请注意,用于按值捕获索引的可选lambda参数。

使用
functools.partial

从functools导入部分
def my_函数(索引、QMouseEvent):
打印(索引)
对于范围(10)中的索引:
widget=qtwidts.QWidget()
widget.mousePressEvent=partial(my_函数,索引)
或者使用lambda

widget.mousePressEvent=lambda:event,index=index:my_函数(index,event)
请注意,用于按值捕获索引的可选lambda参数