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:
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.
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


0