Salut j'ai une petite application que j'ai faite juste pour pouvoir comprendre le fonctionnement des signaux personnalisés avec PyQt5.
j'ai une fenetre principal dérivée de la classe MyPrincipalWindow qui contient un bouton qui servira à afficher une seconde fentre dérivée de la classe SecondWindow. la seconde fenetre contient un bouton et une zone de texte.
le but est de recupérer le contenu de la zone de texte de la seconde fenetre et de transmettre dans la zone de texte de la seconde fenetre. Je precise que j'aimerai faire cela avec un signal personnalisé en PyQt5. j'ai lu le tuto plutot pour PyQt4 et qui est tres différent de la facon d'implementer les signaux en PyQt5.
voila mon code qui ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
import sys
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QWidget, QApplication, QLineEdit, QPushButton, QLabel
from PyQt5.QtCore import pyqtSignal, QObject
 
##################################""""
 
class MyNewSignal(QObject):
    mySignal = pyqtSignal()
 
class SecondWindow(QWidget):
    def __init__(self, parent = None):
        super().__init__()
        self.parent = parent
        self.setWindowTitle("deuxieme fenetre")
        self.setWindowModality(2)
 
        self.btn2 = QPushButton("Transfer", self)
        self.btn2.setGeometry(100, 150, 200, 50)
 
        self.btn2.clicked.connect(self.transfer_valeurs)
        self.signal_class = MyNewSignal()
        self.signal_class.mySignal.connect(self.retrieveValues)
 
 
        self.textbox2 = QLineEdit(self)
        self.textbox2.setGeometry(100, 50, 200, 50)
 
    def retrieveValues(self):
        x = self.textbox2.text()
        self.mainWindow = MyPrincipalWindow()
        self.mainWindow.textbox1.setText(x)
 
    def transfer_valeurs(self):
        self.signal_class = MyNewSignal()
        self.signal_class.mySignal.emit()
 
class MyPrincipalWindow(QWidget):
    def __init__(self, parent = None):
        super().__init__()
        self.parent = parent
        self.setWindowTitle("Ma fenetre principal")
        self.setFixedSize(700, 500)
 
        self.btn1 = QPushButton("Afficher deuxieme fenetre", self)
        self.btn1.clicked.connect(self.afficherFenetre)
        self.btn1.setGeometry(250,300,250,75)
 
        self.textbox1 = QLineEdit(self)
        self.textbox1.setGeometry(250,50,200,50)
 
    def afficherFenetre(self):
        self.save = SecondWindow(self)
        self.save.show()
 
 
if __name__=="__main__":
 
    app = QApplication(sys.argv)
    fen = MyPrincipalWindow()
    fen.show()
 
    app.exec()
Et svp aidez moi aussi comment lancer tout ce code dans un terminal car je suis dans pycharm