Bonjour,

J'étais entrain de développer un mini carnet d'adresse pour apprendre les bases de PyQt5.
Sauf que petit problème j'ai du mal a comprendre un principe ou plutôt le problème que je rencontre,

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
 
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QListWidget, QWidget, QHBoxLayout
import GestionnaireBD as Gbd
import Ajouter_Contact
 
class accueil(QMainWindow):
    def __init__(self):
        super().__init__()
        self.BD = Gbd.GestionnaireBD()
        self.initUI()
 
    def initUI(self):
        # Création de la fenêtre
        self.setWindowTitle('Accueil')
        self.setGeometry(400, 500, 300, 300)
 
        # Central Widget
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
 
        # Ajouter les Widgets
        layout = QHBoxLayout(central_widget)
        self.liste_Contact = QListWidget()
        ajouter_button = QPushButton('Ajouter Contact')
        ajouter_button.clicked.connect(self.ouvrir_fenetre_ajouter_contact)
 
        layout.addWidget(ajouter_button)
        layout.addWidget(self.liste_Contact)
 
        # Remplir la QListWidget
        self.remplir_liste_contacts()
 
    def remplir_liste_contacts(self):
        self.liste_Contact.clear()  # Effacer la liste actuelle
        Liste = self.BD.get_listContact()
        for contact in Liste:
            self.liste_Contact.addItem(contact[1] + ' ' + contact[2])
 
    def ouvrir_fenetre_ajouter_contact(self):
        self.ajouter_contact_window = Ajouter_Contact.ajouter_contact(self)
        self.ajouter_contact_window.show()
 
    def ajouter_contact_bd(self, prenom, nom, telephone):#pour ajouter_contact
        self.BD.ajouter_contact(prenom, nom, telephone)
        self.remplir_liste_contacts()
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = accueil()
    ex.show()
    sys.exit(app.exec_())
A la ligne 41 j'ai mis comme argument 'self' pour donner le parent a la classe ajouter_contact sauf que si je le fait la fenêtre ne s'affiche pas alors qu'a l'inverse si je l'enlève la fenetre s'affiche, je suppose car il n'y a pas de conflit parent.
Je me demande alors pourquoi ma fenêtre ne s'affiche pas et comment régler se problème car j'aimerai pouvoir lui donner cette argument pour pouvoir utiliser des méthodes parent dans l'enfant.

Voici Ajouter_Contact :
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
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLineEdit, QPushButton
 
class ajouter_contact(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        print("TEST")
        self.parent = parent
        self.initUI()
 
    def initUI(self):
        self.setWindowTitle("Ajouter Contact")
 
        layoutLine = QVBoxLayout()
        self.Prenom = QLineEdit(self)
        self.Prenom.setPlaceholderText("Prénom")
        self.Nom = QLineEdit(self)
        self.Nom.setPlaceholderText("Nom")
        self.telephone = QLineEdit(self)
        self.telephone.setPlaceholderText("Téléphone")
        self.valider = QPushButton("Valider", self)
 
        layoutLine.addWidget(self.Prenom)
        layoutLine.addWidget(self.Nom)
        layoutLine.addWidget(self.telephone)
        layoutLine.addWidget(self.valider)
 
        self.setLayout(layoutLine)
 
        # Connecter le bouton "Valider" au slot
        self.valider.clicked.connect(self.valider_contact)
 
    def valider_contact(self):
        prenom = self.Prenom.text()
        nom = self.Nom.text()
        telephone = self.telephone.text()
        if self.parent:
            self.parent.ajouter_contact_bd(prenom, nom, telephone)
        self.close()