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 :

Lister toutes les groupbox créés [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable BE Elec/autom
    Inscrit en
    Septembre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable BE Elec/autom
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut Lister toutes les groupbox créés
    Bonjour,

    je suis entrain de développer un programme avec PyQT4, dans ce programme, je crée des Groupbox (contenant chacune deux QLineEdit) dynamiquement en fonction des valeurs d'une table d'une base de données.

    voici la class qui me permet de créer les GroupBox:

    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
     
    class AffObjet(object):
        def __init__(self,window,x,y,nom):
            window.Group = QtGui.QGroupBox(window.Aff_Des)
            window.Group.setGeometry(QtCore.QRect(x, y, 160, 90))
            window.Group.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
            window.Group.setFlat(False)
            window.Group.setCheckable(True)
            window.Group.setObjectName(_fromUtf8(nom))
            window.H_value = QtGui.QLineEdit(window.Group)
            window.H_value.setGeometry(QtCore.QRect(80, 30, 70, 20))
            window.H_value.setObjectName(_fromUtf8("heure_value"))
            window.label_H = QtGui.QLabel(window.Group)
            window.label_H.setGeometry(QtCore.QRect(5, 30, 60, 20))
            window.label_H.setObjectName(_fromUtf8("label_H"))
            window.M_value = QtGui.QLineEdit(window.Group)
            window.M_value.setGeometry(QtCore.QRect(80, 60, 70, 20))
            window.M_value.setObjectName(_fromUtf8("Montant_value"))
            window.label_M = QtGui.QLabel(window.Group)
            window.label_M.setGeometry(QtCore.QRect(5, 60, 70, 20))
            window.label_M.setObjectName(_fromUtf8("label_M"))
            window.Group.setTitle(_translate("MainWindow", nom, None))
            window.label_H.setText(_translate("MainWindow", "Heures :", None))
            window.label_M.setText(_translate("MainWindow", "Montant :", None))
            window.Group.show()
    la variable "nom" étant le nom de la Groupbox (jamais identique)

    je souhaiterai pouvoir lister toutes les GroupBox créés pour pouvoir ensuite récupérer les valeurs qui seront écrite dans chaque QLineEdit par l'opérateur et aussi l'état de la variable checked de la GroupBox.

    Pouvez-vous m'aider s'il vous plait.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    As-tu essayer avec la fonction findChildren à appliquer sur le conteneur commun de tes GroupBox ?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Je ne comprend pas pourquoi tu fais cela de cette façon dans une classe.

    Une classe définit un objet et non une simple procédure.

    Si je comprend bien tu as besoin de créer plusieurs de ces groupBox.

    Toutefois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            window.Group = QtGui.QGroupBox(window.Aff_Des)
    ceci signifie que chaque nouveau groupBox créé remplace le précédent comme attribut Group de window.
    Les groupBox apparaissent bien parce qu'ils ont ont un parent empêchant le garbage de Python de les virer, c'est le non-sens que je montre ici.

    Deux possibilités, soit tu fais une simple fonction et tu gardes référence des groupes dans une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        def build_groupbox(self, nom, parent):
            gb = QtGui.QGroupBox(parent)
            # tu crées tes widgets ici 
            # et utilise un layout !
     
            return gb
     
     
        # Dans le code de window
            window.groupboxs = []
            # pour chaque groupBox nécessaire
            window.groupboxs.append(self.build_groupbox(nom, window))
    soit, tu es payé à la classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class MyGroupBox(QtGui.QGroupBox):
        def __init__(self, nom, parent=None):
            super(MyGroupBox, self).__init__(parent)
            # tu crées tes widgets ici 
            # et utilise un layout !
     
     
          # Dans le code de window
            window.groupboxs = []
            # pour chaque groupBox nécessaire
            window.groupboxs.append(MyGroupBox(nom, window))
    A toi de choisir.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable BE Elec/autom
    Inscrit en
    Septembre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable BE Elec/autom
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Merci à vous deux pour vos réponses rapides,

    VinsS :
    ceci signifie que chaque nouveau groupBox créé remplace le précédent comme attribut Group de window.
    Les groupBox apparaissent bien parce qu'ils ont ont un parent empêchant le garbage de Python de les virer, c'est le non-sens que je montre ici.
    C'est bien ce que je me disais !! mais je ne trouvais pas la syntaxe pour faire autrement, maintenant je l'ai ,

    Merci à vous deux, je vous tiens au courant des mes prochains tests

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable BE Elec/autom
    Inscrit en
    Septembre 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable BE Elec/autom
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    VinsS,

    J'ai créer une simple fonction comme tu me l'avais indiqué, et j'ai réussi a obtenir le résultat que je souhaité.

    Merci a vous deux,

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

Discussions similaires

  1. Lister toutes les combinaisons...
    Par monstroplante dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 04/11/2005, 21h10
  2. Lister toutes les clés étrangères de toutes le tables
    Par Samish dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2005, 10h15
  3. lister tout les modules installer de perl
    Par black_code dans le forum Modules
    Réponses: 6
    Dernier message: 05/08/2005, 18h20
  4. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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