Python - Añadir eventos a Interfaz Grafica

 
Vista:
Imágen de perfil de Pepe
Val: 33
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Añadir eventos a Interfaz Grafica

Publicado por Pepe (16 intervenciones) el 18/07/2017 19:11:20
Hola a todos,
He creado una interfaz grafica con PyQt5 Designer y Python3. Despues de horas y horas probando miles de codigos de cientos de tutoriales, he conseguido que el lanzador de la aplicacion me abra la interfaz con el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QDialog, QFileDialog
from PyQt5 import uic, QtCore, QtGui
from PyQt5.QtGui import QPixmap
 
class MyProgram(QDialog):
    def __init__(self):
        QMainWindow.__init__(self)
        uic.loadUi("Aplicacion.ui", self)
 
        self.bExplorar.clicked.connect(self.Explorar())
 
    def showEvent(self, event):
 
        # Al Mostrar la imagen la escalamos al tamaño de Label
        self.label1.setPixmap(QtGui.QPixmap(('image.jpg'))
                                      .scaled(self.label1.size(), QtCore.Qt.KeepAspectRatio))
 
    def closeEvent(self, event):
        resultado = QMessageBox.question(self,"Salir...", '¿Está Seguro que Quiere Salir de la Aplicaión',
                                         QMessageBox.Yes | QMessageBox.No)
        if resultado == QMessageBox.Yes: event.accept()
        else: event.ignore()
 
    def Explorar(self):
        image = QFileDialog.getOpenFileName(None, 'OpenFile', '', "Image file(*.jpg *.JPG *.png *.PNG *.jpeg *.JPEG)")
        imagePath = image[0]
        self.label1.setPixmap(QtGui.QPixmap((imagePath))
                                      .scaled(self.label1.size(), QtCore.Qt.KeepAspectRatio))
 
 
app = QApplication(sys.argv)
Myapp = MyProgram()
Myapp.show()
 
app.exec_()

Ahora el problema es que no consigo enlazar los eventos de los diferentes controles de la interfaz. al poner esto: self.bExplorar.clicked.connect(self.Explorar()), cuando lanzo la interfaz grafica se me abre directamente el QFileDialog y encima si elijo una imagen me da error.

Los eventos al abrir y al cerrar el formulario me funcionan, pero para los botones y demas elementos del formulario no soy capaz.

Alguien podria orientarme sobre como enlazar correctamente mi aplicación con el codigo?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder