hacer que QLabel haga clic con PyQt5

Tengo una Qlabel rellena con QPixmap y quiero iniciar un proceso / función una vez que esta etiqueta haga clic. Había extendido la clase QLabel de la siguiente manera:

from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * class QLabel_alterada(QLabel): clicked=pyqtSignal() def __init(self, parent): QLabel.__init__(self, QMouseEvent) def mousePressEvent(self, ev): self.clicked.emit() 

Luego, en mi archivo .py basado en pyuic5 (utilicé QtDesigner para hacer el diseño) después de importar el módulo donde guardo la clase QLabel extendida, dentro de la función setupui generada automáticamente, la función cambié mi Etiqueta de

 self.label1=QtWidgets.QLabel(self.centralwidget) 

a

 self.label1 = QLABEL2.QLabel_alterada(self.centralwidget) 

Finalmente, en el archivo python de la aplicación principal, donde coloqué todos los procedimientos / clases que fuera necesario para la funcionalidad de la aplicación que agregué

 self.ui.label1.clicked.connect(self.dosomestuff) 

La aplicación no se bloquea, pero las tags aún no se pueden hacer clic. ¿Puede alguien ayudarme en esto?

Gracias por adelantado

No entiendo por qué pasa QMouseEvent al constructor principal, debe pasar el atributo principal como se muestra a continuación:

 class QLabel_alterada(QLabel): clicked=pyqtSignal() def __init__(self, parent=None): QLabel.__init__(self, parent) def mousePressEvent(self, ev): self.clicked.emit() 

Para evitar problemas con las importaciones, podemos promocionar directamente el widget como se muestra a continuación:

QLabel una QLabel y hacemos clic derecho y seleccionamos Promote to ... :

introduzca la descripción de la imagen aquí

Obtenemos el siguiente cuadro de diálogo y colocamos QLABEL2.h en el archivo de cabecera y QLabel_changed en Nombre de la clase promocionada, luego presionamos Agregar y Promover

introduzca la descripción de la imagen aquí

Luego generamos el archivo .ui con la ayuda de pyuic. Obteniendo la siguiente estructura:

 ├── main.py ├── QLABEL2.py └── Ui_main.ui 

Obteniendo la siguiente estructura:

 class MainWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.label.clicked.connect(self.dosomestuff) def dosomestuff(self): print("click") if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) w = MainWindow() w.show() sys.exit(app.exec_())