IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Gestion Parent/enfant affichage [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 4
    Par défaut Gestion Parent/enfant affichage
    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()

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 032
    Par défaut
    Bonjour,

    Citation Envoyé par TheC0rpsE
    J'étais entrain de développer un mini carnet d'adresse pour apprendre les bases de PyQt5.
    Peut-être devriez vous apprendre les concepts de la POO et avant la POO, lire la PEP8 et ses conventions ?

    Pour votre problème, essayez juste d'ajouter le nom du paramètre où vous essayez d'y assigner une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.ajouter_contact_window = Ajouter_Contact.ajouter_contact(parent=self)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage automatique arbre parents/enfants
    Par yappp dans le forum jQuery
    Réponses: 4
    Dernier message: 14/03/2013, 16h21
  2. [plotyy] Gestion parent/enfants
    Par el_fuche dans le forum MATLAB
    Réponses: 11
    Dernier message: 27/02/2012, 15h45
  3. Treeview : gestion parent/enfant
    Par Masmeta dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/12/2010, 21h52
  4. [texte] gestion de l'affichage d'une page
    Par guy2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 10/07/2005, 18h37
  5. [VB.NET] Problème liste Parent-Enfant dans DataGrid
    Par vonbier dans le forum ASP.NET
    Réponses: 7
    Dernier message: 27/01/2005, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo