Tengo un problema con mi programa, cada vez que lo corro y oprimo el botón de mi GUI el programa se cierra automaticamente. Cree una función que al momento de darle click al botón obtenga los datos de los lineEdit y obtenga el estado de los radioButtons, y a partir del radioButton seleccionado realice una operación.
Este es el codigo
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBoxfrom PyQt5 import uic#Clase Heredada de QMainWindow (Constructor de ventana)class Ventana(QMainWindow): #Metodo constructor de la clase def __init__(self): #Iniciar el objeto QMainWindow QMainWindow.__init__(self) #Cargar la Configuracion del archivo ui en el objeto uic.loadUi("Bocinas.ui",self) self.pushButton.clicked.connect(self.Guardar) def closeEvent(self,event): resultado = QMessageBox.question(self,"Salir..","¿Seguro quiere salir?",QMessageBox.Yes | QMessageBox.No) if resultado == QMessageBox.Yes: event.accept() else: event.ignore() def Guardar(self): st = self.lineEdit.text() l = self.lineEdit_2.text() xo = self.lineEdit_3.text() m = self.lineEdit_4.text() M = self.lineEdit_5.text() sx=[] if self.radioButton.isChecked(): for i in range(l): s=st*((i/xo)**2) sx.append(s) elif self.radioButton_2.isChecked(): for i in range(l): s=st*((i/xo)**2) sx.append(s) elif self.radioButton_3.isChecked(): for i in range(l): s=st*((i/xo)**2) sx.append(s) elif self.radioButton_4.isChecked(): for i in range(l): s=st*((i/xo)**2) sx.append(s) else: opcion = QMessageBox.Retry(self,"Seleccione algun tipo de Bocina")#Instancia para iniciar una appapp = QApplication(sys.argv)#Crear un objeto de la clase_ventana = Ventana()#Mostrar ventana_ventana.show()#Ejecutar appapp.exec_()
Gracias por la ayuda
Tengo un problema con mi programa, cada vez que lo corro y oprimo el botón de mi GUI el programa se cierra automaticamente. Cree una función que al momento de darle click al botón obtenga los datos de los lineEdit y obtenga el estado de los radioButtons, y a partir del radioButton seleccionado realice una operación.
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'Bocinas.ui'## Created by: PyQt5 UI code generator 5.14.1## WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(560, 140, 191, 51)) self.pushButton.setObjectName("pushButton") self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget) self.graphicsView.setGeometry(QtCore.QRect(60, 280, 311, 251)) self.graphicsView.setObjectName("graphicsView") self.layoutWidget = QtWidgets.QWidget(self.centralwidget) self.layoutWidget.setGeometry(QtCore.QRect(70, 100, 273, 153)) font = QtGui.QFont() font.setPointSize(14) self.layoutWidget.setFont(font) self.layoutWidget.setObjectName("layoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget) self.verticalLayout.setContentsMargins(3, 1, 0, 10) self.verticalLayout.setSpacing(4) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(self.layoutWidget) font = QtGui.QFont() font.setPointSize(14) self.label.setFont(font) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.label_2 = QtWidgets.QLabel(self.layoutWidget) font = QtGui.QFont() font.setPointSize(14) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.verticalLayout.addWidget(self.label_2) self.label_3 = QtWidgets.QLabel(self.layoutWidget) font = QtGui.QFont() font.setPointSize(14) self.label_3.setFont(font) self.label_3.setObjectName("label_3") self.verticalLayout.addWidget(self.label_3) self.label_4 = QtWidgets.QLabel(self.layoutWidget) font = QtGui.QFont() font.setPointSize(14) self.label_4.setFont(font) self.label_4.setObjectName("label_4") self.verticalLayout.addWidget(self.label_4) self.label_5 = QtWidgets.QLabel(self.layoutWidget) font = QtGui.QFont() font.setPointSize(14) self.label_5.setFont(font) self.label_5.setObjectName("label_5") self.verticalLayout.addWidget(self.label_5) self.radioButton = QtWidgets.QRadioButton(self.centralwidget) self.radioButton.setGeometry(QtCore.QRect(410, 340, 171, 21)) self.radioButton.setObjectName("radioButton") self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget) self.radioButton_2.setGeometry(QtCore.QRect(410, 370, 171, 21)) self.radioButton_2.setObjectName("radioButton_2") self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget) self.radioButton_3.setGeometry(QtCore.QRect(410, 400, 171, 21)) self.radioButton_3.setObjectName("radioButton_3") self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget) self.radioButton_4.setGeometry(QtCore.QRect(410, 430, 171, 21)) self.radioButton_4.setObjectName("radioButton_4") self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(380, 100, 161, 21)) self.lineEdit.setObjectName("lineEdit") self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_2.setGeometry(QtCore.QRect(380, 130, 161, 21)) self.lineEdit_2.setObjectName("lineEdit_2") self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_3.setGeometry(QtCore.QRect(380, 160, 161, 21)) self.lineEdit_3.setObjectName("lineEdit_3") self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_4.setGeometry(QtCore.QRect(380, 190, 161, 21)) self.lineEdit_4.setObjectName("lineEdit_4") self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_5.setGeometry(QtCore.QRect(380, 220, 161, 21)) self.lineEdit_5.setObjectName("lineEdit_5") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22)) self.menubar.setObjectName("menubar") self.menuArchivo = QtWidgets.QMenu(self.menubar) self.menuArchivo.setObjectName("menuArchivo") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionAbrir = QtWidgets.QAction(MainWindow) self.actionAbrir.setObjectName("actionAbrir") self.actionGuardar = QtWidgets.QAction(MainWindow) self.actionGuardar.setObjectName("actionGuardar") self.menuArchivo.addAction(self.actionAbrir) self.menuArchivo.addAction(self.actionGuardar) self.menubar.addAction(self.menuArchivo.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "Graficar")) self.label.setText(_translate("MainWindow", "Área de garganta")) self.label_2.setText(_translate("MainWindow", "Longitud")) self.label_3.setText(_translate("MainWindow", "Distancia entre origen y garganta")) self.label_4.setText(_translate("MainWindow", "Ensanchamiento")) self.label_5.setText(_translate("MainWindow", "Factor de forma")) self.radioButton.setText(_translate("MainWindow", "Conica")) self.radioButton_2.setText(_translate("MainWindow", "Catenoidal")) self.radioButton_3.setText(_translate("MainWindow", "Hiperbolica")) self.radioButton_4.setText(_translate("MainWindow", "Exponencial")) self.menuArchivo.setTitle(_translate("MainWindow", "Archivo")) self.actionAbrir.setText(_translate("MainWindow", "Abrir")) self.actionGuardar.setText(_translate("MainWindow", "Guardar"))
Aqui esta el codigo de Bocinas.py, extraido de Bocinas.ui