Переопределение функций таким способом не предлагается, особенно для того, что считается защищенными функциями в Qt, как в случае любой *Event()
функции QObjects и QWidgets.
Кроме того, в вашем случае вы просто перезаписываете метод с той же сигнатурой, что никогда не позволит вам получить источник вызова функции.
Возможным решением будет использование лямбда-выражения с источник в качестве ключевого аргумента:
self.label_ligne_1_1.mousePressEvent = lambda ev, label=self.label_ligne_1_1: self.label_click(label)
Но я бы не советовал вам это делать. Вместо этого лучшим подходом будет установить фильтр событий на каждую метку, а затем устанавливать растровое изображение каждый раз, когда захватывается событие нажатия мыши:
class Squares(QtWidgets.QWidget):
def __init__(self):
super().__init__()
layout = QtWidgets.QGridLayout(self)
layout.setSpacing(0)
for row in range(4):
for col in range(4):
square = QtWidgets.QLabel()
square.setPixmap(QtGui.QPixmap('tab.png'))
layout.addWidget(square, row, col)
setattr(self, 'label_ligne_{}_{}'.format(row + 1, col + 1), square)
square.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.MouseButtonPress:
source.setPixmap(QtGui.QPixmap('tabx.png'))
return super().eventFilter(source, event)