Foros del Web » Programando para Internet » Python »

PyQt: Problema al guardar atributos de un modulo a otro

Estas en el tema de PyQt: Problema al guardar atributos de un modulo a otro en el foro de Python en Foros del Web. Buenas noches compañeros del Foros del Web, estoy nuevo empezando a usar PyQt y en una de mis practicas autodidactas estoy creando una simple aplicación ...
  #1 (permalink)  
Antiguo 28/06/2015, 19:55
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 3 meses
Puntos: 0
PyQt: Problema al guardar atributos de un modulo a otro

Buenas noches compañeros del Foros del Web, estoy nuevo empezando a usar PyQt y en una de mis practicas autodidactas estoy creando una simple aplicación que suma dos valores, pero para colocarle algo mas de dificultad me lo plantíe de esta forma: 1 form con un Button que al clickear sumar, abra otro form con dos lineEdit y un ButtonPush y que cuando presione el botton imprima el resultado, y que al form que lo llamo le pase un contador con el n° de veces que se ha realizado una suma, como pueden leer es una aplicación muy basica sin embargo me parece buena practica por trabajar con dos forms, el problema radica en que puedo abrir desde el form principal el segundo form, y realizar el calculo, sin embargo no pasa el contador al form que lo invoco, dejo el código a continuación:

FORM PRINCIPAL:

Código Python:
Ver original
  1. import sys
  2. import calculo
  3. from PyQt4 import QtCore, QtGui
  4.  
  5. try:
  6.     _fromUtf8 = QtCore.QString.fromUtf8
  7. except AttributeError:
  8.     def _fromUtf8(s):
  9.         return s
  10.  
  11. try:
  12.     _encoding = QtGui.QApplication.UnicodeUTF8
  13.     def _translate(context, text, disambig):
  14.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  15. except AttributeError:
  16.     def _translate(context, text, disambig):
  17.         return QtGui.QApplication.translate(context, text, disambig)
  18.  
  19. class Ui_Dialog(object):
  20.     def setupUi(self, Dialog):
  21.         Dialog.setObjectName(_fromUtf8("Dialog"))
  22.         Dialog.resize(355, 118)
  23.         self.Sumar = QtGui.QPushButton(Dialog)
  24.         self.Sumar.setGeometry(QtCore.QRect(140, 30, 75, 23))
  25.         self.Sumar.setObjectName(_fromUtf8("Sumar"))
  26.         self.labelInfo = QtGui.QLabel(Dialog)
  27.         self.labelInfo.setGeometry(QtCore.QRect(160, 80, 141, 16))
  28.         self.labelInfo.setText(_fromUtf8(""))
  29.         self.labelInfo.setObjectName(_fromUtf8("labelInfo"))
  30.  
  31.         self.retranslateUi(Dialog)
  32.         QtCore.QMetaObject.connectSlotsByName(Dialog)
  33.  
  34.     def retranslateUi(self, Dialog):
  35.         Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
  36.         self.Sumar.setText(_translate("Dialog", "Sumar", None))
  37.  
  38. class suma(QtGui.QDialog):
  39.  
  40.     def __init__(self,parent=None):
  41.  
  42.         QtGui.QWidget.__init__(self,parent)
  43.         self.ui=Ui_Dialog()
  44.         self.ui.setupUi(self)
  45.         self.ui.Sumar.clicked.connect(self.sumar)
  46.        
  47.  
  48.     def sumar(self):
  49.         ''' INSTANCIO EL FORM QUE HACE EL CACULO '''
  50.         self.ui.llamada=calculo.operacion()
  51.         self.ui.llamada.show()
  52.         self.ui.labelInfo.setText(self.ui.llamada.cadenacon) ##NO CAMBIA EL VALOR##
  53.        
  54.        
  55.        
  56.  
  57. if __name__=="__main__":
  58.     app=QtGui.QApplication(sys.argv)
  59.     myapp = suma()
  60.     myapp.show()
  61.     sys.exit(app.exec_())

FORM QUE SUMA Y NO DEVUELVE EL CONTADOR

Código Python:
Ver original
  1. import sys
  2. from PyQt4 import QtCore, QtGui
  3.  
  4. try:
  5.     _fromUtf8 = QtCore.QString.fromUtf8
  6. except AttributeError:
  7.     def _fromUtf8(s):
  8.         return s
  9.  
  10. try:
  11.     _encoding = QtGui.QApplication.UnicodeUTF8
  12.     def _translate(context, text, disambig):
  13.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  14. except AttributeError:
  15.     def _translate(context, text, disambig):
  16.         return QtGui.QApplication.translate(context, text, disambig)
  17.  
  18. class Ui_Dialog(object):
  19.     def setupUi(self, Dialog):
  20.         Dialog.setObjectName(_fromUtf8("Dialog"))
  21.         Dialog.resize(408, 200)
  22.         self.lineEdit = QtGui.QLineEdit(Dialog)
  23.         self.lineEdit.setGeometry(QtCore.QRect(140, 20, 113, 20))
  24.         self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
  25.         self.lineEdit_2 = QtGui.QLineEdit(Dialog)
  26.         self.lineEdit_2.setGeometry(QtCore.QRect(140, 60, 113, 20))
  27.         self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
  28.         self.Calcular = QtGui.QPushButton(Dialog)
  29.         self.Calcular.setGeometry(QtCore.QRect(160, 110, 75, 23))
  30.         self.Calcular.setObjectName(_fromUtf8("Calcular"))
  31.  
  32.         self.retranslateUi(Dialog)
  33.         QtCore.QMetaObject.connectSlotsByName(Dialog)
  34.  
  35.     def retranslateUi(self, Dialog):
  36.         Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
  37.         self.Calcular.setText(_translate("Dialog", "Calcula!", None))
  38.  
  39. class operacion(QtGui.QDialog):
  40.  
  41.     def __init__(self,parent=None):
  42.  
  43.         QtGui.QWidget.__init__(self,parent)
  44.         self.ui=Ui_Dialog()
  45.         self.ui.setupUi(self)
  46.         self.ui.Calcular.clicked.connect(self.calcular)
  47.         self.con=0
  48.         self.cadenacon=''
  49.        
  50.  
  51.     def calcular(self):
  52.         '''METODO QUE SUMA Y DEVUELVE EL RESULTADO'''
  53.         self.con+=1
  54.         self.cadenacon=str(self.con)
  55.        
  56.         a=int(self.ui.lineEdit.text())
  57.         b=int(self.ui.lineEdit_2.text())
  58.         oper=a+b
  59.         self.resul=str(oper)
  60.         print("Suma :",self.resul)
  61.         print("N° de Suma ",self.cadenacon)
  62.        
  63.        
  64.        
  65.        
  66.  
  67. if __name__=="__main__":
  68.     app=QtGui.QApplication(sys.argv)
  69.     myapp = operacion()
  70.     myapp.show()
  71.     sys.exit(app.exec_())

Presumo que el error debe estar en esta linea del Form principal:
Código Python:
Ver original
  1. self.ui.llamada=calculo.operacion()
  2. self.ui.llamada.show()
  3. self.ui.labelInfo.setText(self.ui.llamada.cadenacon) ##NO CAMBIA EL VALOR##

Ya que si hago un print de self.cadenacon, desde el modulo que se invoca, imprime el conteo sin detalles, no entiendo por que no se pasa el valor al label, de igual forma sus consejos me serían de muchisíma utilidad, gracias de antemano por la ayuda que me puedan brindar ! .

Etiquetas: atributos, cadena, gui, ip, modulo, pyqt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:59.