Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Enlazar dos ventanas, señales y slots Pyqt

29 de septiembre de 2014

Tengo dos ventanas simples una con un pushbutton y la otra con un widget-label para mostrar un mensaje. Lo que quiero es que al presionar el pushbutton de la ventana de Boton se muestre un mensaje en la otra ventana llamada Meesaje, ¿cómo puedo hacer esto?

Adjunto los códigos de ambas ventanas sin ninguna función. Espero me puedan ayudar:

from PyQt4 import QtCore, QtGui
 
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s
 
try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)
 
class Ui_Boton(object):
    def setupUi(self, Boton):
        Boton.setObjectName(_fromUtf8("Boton"))
        Boton.resize(357, 240)
        self.pushButtonMnesaje = QtGui.QPushButton(Boton)
        self.pushButtonMnesaje.setGeometry(QtCore.QRect(130, 90, 75, 23))
        self.pushButtonMnesaje.setObjectName(_fromUtf8("pushButtonMnesaje"))
 
        self.retranslateUi(Boton)
        QtCore.QMetaObject.connectSlotsByName(Boton)
 
    def retranslateUi(self, Boton):
        Boton.setWindowTitle(_translate("Boton", "Dialog", None))
        self.pushButtonMnesaje.setText(_translate("Boton", "Mensaje", None))
 
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import* 
 
class BotonApp(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.zi=Ui_Boton()
        self.zi.setupUi(self)
 
if __name__=='__main__':
    app=QtGui.QApplication(sys.argv)
    myapp=BotonApp()
    myapp.show()
    sys.exit(app.exec_())

Ventana de mensaje

from PyQt4 import QtCore, QtGui
 
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s
 
try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)
 
class Ui_Mnesaje(object):
    def setupUi(self, Mnesaje):
        Mnesaje.setObjectName(_fromUtf8("Mnesaje"))
        Mnesaje.resize(357, 240)
        self.label = QtGui.QLabel(Mnesaje)
        self.label.setGeometry(QtCore.QRect(60, 60, 241, 111))
        self.label.setText(_fromUtf8(""))
        self.label.setObjectName(_fromUtf8("label"))
 
        self.retranslateUi(Mnesaje)
        QtCore.QMetaObject.connectSlotsByName(Mnesaje)
 
    def retranslateUi(self, Mnesaje):
        Mnesaje.setWindowTitle(_translate("Mnesaje", "Dialog", None))
 
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import* 
 
class Mensaje(QtGui.QDialog):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.xi=Ui_Mnesaje()
        self.xi.setupUi(self)
 
if __name__=='__main__':
    app=QtGui.QApplication(sys.argv)
    myapp=Mensaje()
    myapp.show()
    sys.exit(app.exec_())

Respuestas

#1

Aquí tienes dos recursos que te pueden servir:

@javiereguiluz

30 septiembre 2014, 23:21
#2

@ing_edsan como los uniste a la final?? que fue lo que hiciste? estoy tratando de hacer algo igual a ti..

@sarethGarcia

9 marzo 2016, 1:27