А почему у вас не заработало с наследованием?
Попробуйте вот такой пример с использованием наследования и сигналов:
from PyQt4 import QtGui, Qt
class MyLabel(QtGui.QLabel):
clicked = Qt.pyqtSignal(str)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def mousePressEvent(self, *args, **kwargs):
self.clicked.emit(self.text())
return QtGui.QLabel.mousePressEvent(self, *args, **kwargs)
class Main(QtGui.QWidget):
def __init__(self):
super().__init__()
layout = QtGui.QVBoxLayout(self)
for i in range(5):
label = MyLabel(self, "Label " + str(i))
label.clicked.connect(self.set_title)
layout.addWidget(label)
self.resize(300, 300)
def set_title(self, label):
self.setWindowTitle(label)
if __name__ == '__main__':
app = Qt.QApplication([])
m = Main()
m.show()
app.exec()