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 :

Récupérer les données de QTextEdit crées à la volée


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 30
    Par défaut Récupérer les données de QTextEdit crées à la volée
    Bonjour à tous,

    J'ai une grille dans laquelle se trouve deux premiers QTextEdit, il y a un bouton qui me crée d'autres QTextEdit à la demande, comme ceci :

    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
    65
    66
    67
    68
    69
    70
    71
    72
     ...       
            # Widgets groupés
            groupe_1 = QGroupBox()
            groupe_2 = QGroupBox()
     
            self.grille_1_stack_3 = QGridLayout()
            self.grille_1_stack_3.setSpacing(0)
            self.grille_2_stack_3 = QGridLayout()
            self.grille_1_stack_3.setSpacing(0)
     
            label_mot_vocabulaire = QLabel(u"Mots de vocabulaire")
            label_definitions = QLabel(u"Définitions")
     
            # Bouton pour ajouter une ligne pour les mots de vocabulaire
            self.bouton_ajout_ligne_vocabulaire = QPushButton(u"Ajouter une ligne de vocabulaire")
            # Bouton pour supprimer une ligne pour les mots de vocabulaire
            self.bouton_supprime_ligne_vocabulaire = QPushButton(u"Supprimer une ligne de vocabulaire")
     
            self.texte_mot_vocab = QTextEdit()
            self.texte_mot_vocab.setMaximumHeight(40)
            self.texte_mot_vocab.setMinimumHeight(40)
            self.texte_mot_vocab.setMaximumWidth(180)
            self.texte_mot_vocab.setMinimumWidth(180)
            self.texte_definition = QTextEdit()
            self.texte_definition.setMaximumHeight(54)
            self.texte_definition.setMinimumHeight(54)
     
            # Disposition dans la grille (stacked 3)
            self.grille_1_stack_3.addWidget(self.bouton_ajout_ligne_vocabulaire, 0, 0)
            self.grille_1_stack_3.addWidget(self.bouton_supprime_ligne_vocabulaire, 0, 1)
            self.grille_1_stack_3.addWidget(label_mot_vocabulaire, 1, 0)
            self.grille_1_stack_3.addWidget(label_definitions, 1, 1)
     
            self.grille_2_stack_3.addWidget(self.texte_mot_vocab, 0, 0)
            self.grille_2_stack_3.addWidget(self.texte_definition, 0, 1)
            # ============================================= #
            groupe_1.setLayout(self.grille_1_stack_3)
            groupe_2.setLayout(self.grille_2_stack_3)
     
            layout = QGridLayout()
            layout.setSpacing(4)
            layout.addWidget(groupe_1, 0, 0)
            layout.addWidget(groupe_2, 1, 0)
            # ============================================= #
     
            # Le QStackedWidget englobe et fait apparaître la grille
            # ici la grille layout (qui elle-même englobe le QGroupBox)
            self.w_menu_stack_3.setLayout(layout)
     
            # ==========================================
            # Signaux
            # ==========================================
            # Les boutons ajoutent des lignes de questions et peuvent aussi les enlever
            self.bouton_ajout_ligne_vocabulaire.clicked.connect(self.ajouter_un_mot_vocab)
            self.bouton_supprime_ligne_vocabulaire.clicked.connect(self.supprimer_un_mot_vocab)
     
        def ajouter_un_mot_vocab(self) :
            '''
            '''  
            # Création des widgets
            self.texte_vocab = QTextEdit()
            self.texte_vocab.setMaximumHeight(40)
            self.texte_vocab.setMinimumHeight(40)
            self.texte_vocab.setMaximumWidth(180)
            self.texte_vocab.setMinimumWidth(180)
            self.texte_def = QTextEdit()
            self.texte_def.setMaximumHeight(54)
            self.texte_def.setMinimumHeight(54)
            #
            for r in range(self.grille_2_stack_3.rowCount()) :
                self.grille_2_stack_3.addWidget(self.texte_vocab, r+1, 0)
                self.grille_2_stack_3.addWidget(self.texte_def, r+1, 1)
    Ca fonctionne bien mais le problème est que je ne sais pas comment récupérer les données de ces QTextEdit quand ils sont crées à la volée (et en ne sachant pas à l'avance le nombre des QTextEdit que l'utilisateur va créer).
    Ma question ; dans ce cas précis comment récupérer les données que l'utilisateur va entrer ?

    Merci de m'aider.

    A bientot.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Salut,

    Citation Envoyé par ekdmekdm Voir le message
    Ca fonctionne bien mais le problème est que je ne sais pas comment récupérer les données de ces QTextEdit quand ils sont crées à la volée (et en sachant pas à l'avance le nombre des QTextEdit que l'utilisateur va créer).
    Ma question ; dans ce cas précis comment récupérer les données que l'utilisateur va entrer ?
    Pourquoi ne pas stocker (garder une référence) de chacun de ces QTextEdit dans une liste?
    Pour récupérer les différents contenus, il suffirait alors de parcourir cette liste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 30
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    Pourquoi ne pas stocker (garder une référence) de chacun de ces QTextEdit dans une liste?
    Pour récupérer les différents contenus, il suffirait alors de parcourir cette liste.
    - W
    Salut, Merci pour la réponse très rapide.

    Alors voilà :

    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
        def ajouter_un_mot_vocab(self) :
            '''
            '''
            self.liste = []
     
            # Création des widgets
            self.texte_vocab = QTextEdit()
            self.texte_vocab.setMaximumHeight(40)
            self.texte_vocab.setMinimumHeight(40)
            self.texte_vocab.setMaximumWidth(180)
            self.texte_vocab.setMinimumWidth(180)
            self.texte_def = QTextEdit()
            self.texte_def.setMaximumHeight(54)
            self.texte_def.setMinimumHeight(54)
            #
            for r in range(self.grille_2_stack_3.rowCount()) :
                self.grille_2_stack_3.addWidget(self.texte_vocab, r+1, 0)
                self.liste.append(self.texte_vocab)
                self.grille_2_stack_3.addWidget(self.texte_def, r+1, 1)
                self.liste.append(self.texte_def)
     
            print 'self.liste', self.liste
    Affichage après ajout de 3 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611C10>, <PyQt4.QtGui.QTextEdit object at 0x03611C60>]
    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611D00>, <PyQt4.QtGui.QTextEdit object at 0x03611CB0>, <PyQt4.QtGui.QTextEdit object at 0x03611D00>, <PyQt4.QtGui.QTextEdit object at 0x03611CB0>]
    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>, <PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>, <PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>]
    Comment récupérer cela avec des toPlainText() ?, un exemple ?

    A bientôt.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Citation Envoyé par ekdmekdm Voir le message
    Comment récupérer cela avec des toPlainText() ?, un exemple ?
    Vous voulez un exemple de boucle "for" qui itère sur chaque élément d'une liste?
    C'est une construction de base qu'on apprend dans n'importe quel tuto.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> for c in 1, 2, 3:
    ...     print (c)
    ...
    1
    2
    3
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    print 'self.liste', self.liste

    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611C10>, <PyQt4.QtGui.QTextEdit object at 0x03611C60>]
    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611D00>, <PyQt4.QtGui.QTextEdit object at 0x03611CB0>, <PyQt4.QtGui.QTextEdit object at 0x03611D00>, <PyQt4.QtGui.QTextEdit object at 0x03611CB0>]
    self.liste [<PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>, <PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>, <PyQt4.QtGui.QTextEdit object at 0x03611DA0>, <PyQt4.QtGui.QTextEdit object at 0x03611DF0>]

    Comment récupérer cela avec des toPlainText() ?, un exemple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    for QLabel in self.liste:
    	print(QlineEdit.text())
    
    edit pour un QTextEdit...
    for QTextEdit in self.liste:
    	print(QTextEdit.plainText())
    Je suppose que tu récupère un chaine de caractère avec des \n à chaque retour à la ligne, sans certitude

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/07/2012, 18h26
  2. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28
  3. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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