Envoyer une variable d'une fenêtre à une autre
Bonjour,
A l'aide de cette documentation http://pyqt.developpez.com/tutoriels/trucs-et-astuces/deuxieme-fenetre-et-recuperer-valeur/ et de cette discussion http://www.developpez.net/forums/d15...xieme-fenetre/ j'ai réussi à ouvrir une seconde fenêtre créée avec qtDesigner.
Je souhaiterai maintenant qu'une variable soit envoyé de ma seconde fenêtre vers ma première fenêtre (l'inverse de ce tutoriel). Pour cela j'ai donc fait
Depuis mon fichier main, j'ouvre la seconde comme suit (executé depuis un bouton)
Code:
1 2 3 4 5 6 7 8 9 10
|
def open_add_asa_form(self):
#creation de l'objet
self.fen_add_asa = add_asa()
#envoi du signal
self.fen_add_asa.show()
#fenetre modale
self.fen_add_asa.setWindowModality(QtCore.Qt.ApplicationModal)
#ouverture de la fenetre
self.dlg.emit(SIGNAL("modifier(PyQt_PyObject)"),"test") |
J'ai essayé de placer cette ligne avant ou après l'ouverture de la fenêtre
Code:
self.dlg.emit(SIGNAL("modifier(PyQt_PyObject)"),"test")
Et ci dessous le code de ma deuxième fenêtre
Code:
1 2 3 4 5 6 7 8 9 10
| def __init__(self, parent=None):
super(add_asa, self).__init__(parent)
self.setWindowTitle(u"configuration asa")
#connexion avec la fenetre main
self.fen_main=perimetreAsaDialog()
self.connect(self.fen_main, SIGNAL("modifier(PyQt_PyObject)"), self.modifier)
def modifier(self,x):
print "modification"+x |
J'ai bien conscience qu'il y a un truc qui n'est pas logique, le "emit" étant exécuté juste après que la seconde fenêtre soit ouverte. Comment puis je attendre que la fenêtre soit chargée pour exécuter mon emit?
Vous remerciant par avance.