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 :

Interaction PyQt et Python


Sujet :

PyQt Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Interaction PyQt et Python
    Bonjour à tous,

    Suite à mon dernier post je suis assez content du résultat de mon interface (avec des animations etc...). Maintenant j'ai un autre souci sur un sujet de base (en plus !)

    Dans mon programme je crée une instance d'un objet spécifique (genre mesComptes) et une interface qui doit gérer cet objet, seulement voilà impossible de gérer l'instance !
    Je dois rater un truc vraiment évident dans la logique ou alors je dois être vraiment un boulet (fort possible également )

    Merci pour les courageux qui oserons répondre en cette période de rentrée !

    Cordialement,
    rico46

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'ai jamais rencontré de problème qui ressemble à ça. Qu'est-ce que tu entends par "gérer l'instance"?

    Donne des exemples simples d'instances d'objets (instances de classes?).
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    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
     
    # -*- coding: UTF-8 -*-
     
    from PyQt4 import QtGui
    import sys
     
     
    class ObjectExample():
     
        def __init__(self):
            self.value = []
     
     
    class Example(QtGui.QMainWindow):
     
        def __init__(self):
            super(Example, self).__init__()
     
            self.initUI()
     
        def initUI(self):
     
            self.le = QtGui.QLineEdit(self)
            self.le.move(130, 20)
     
            self.btn = QtGui.QPushButton('Send', self)
            self.btn.move(20, 20)
            self.btn.clicked.connect(self.showDialog)
     
            self.setGeometry(300, 300, 290, 150)
            self.setWindowTitle('Input dialog')
            self.show()
     
        def showDialog(self):
            global ins
            ins.append(self.le.text())
     
     
    def main():
     
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ins = ObjectExample()
        sys.exit(app.exec_())
     
    if __name__ == '__main__':
        main()
    Donc dans ce code j'ai une instance d'objet et une interface. L'interface devant gérer l'instance (désolé pour les noms de variables/méthodes, j'ai fait au plus vite ).

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Ok, j'ai vu la fenêtre graphique et l'objet à gérer.

    Mais qu'est-ce que tu voudrais faire sans y arriver?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    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,

    En POO oublie définitivement les global.

    Simplifie et utilise les grilles de mise en page (QLayout)

    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
     
    # -*- coding: UTF-8 -*-
     
    from PyQt4 import QtGui
    import sys
     
     
    class ObjectExample(object):
        def __init__(self):
            self.value = []
     
     
    class Example(QtGui.QMainWindow):
        def __init__(self, obj):
            super(Example, self).__init__()
            self.obj = obj
            wdg = QtGui.QWidget()
            layout = QtGui.QGridLayout(wdg)
            self.le = QtGui.QLineEdit(wdg)
            layout.addWidget(self.le, 0, 0, 1, 2)
            self.btn = QtGui.QPushButton('Send', wdg)
            layout.addWidget(self.btn, 1, 1, 1, 1)
            self.setCentralWidget(wdg)
            self.setWindowTitle('Input dialog')
            self.btn.clicked.connect(self.showDialog)
            self.show()
     
        def showDialog(self):
            self.obj.value.append(self.le.text())
     
     
    def main():
        app = QtGui.QApplication(sys.argv)
        ins = ObjectExample()
        ex = Example(ins)
        sys.exit(app.exec_())
     
    if __name__ == '__main__':
        main()

  6. #6
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Bonjour !
    VinsS,

    Merci pour ta solution je n'y avais pas vraiment pensée

    Cependant le code que je vous ais fourni reste assez simple. Dans mon cas j'ai pas mal d'héritage et je me vois pas transférer ins (instance de l'objet ObjectExample) de l'arrière grand-père au petit fils ^^

    Il n'y a t'il pas d'autres moyens que celui-là ?

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par rico46 Voir le message
    Il n'y a t'il pas d'autres moyens que celui-là ?
    En plaçant l'objet et son instance dans un module à part, il devient disponible de n'importe où, à condition d'importer le module.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  8. #8
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 9
    Points : 4
    Points
    4
    Par défaut ^^


    Ok super à tous et merci pour votre patience



    J'ai fait un pti code pour bien comprendre et ça marche
    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
     
    # -*- coding: utf-8 -*-
     
     
    class MyApp():
     
        def __init__(self):
            self.obj = MyObj()
            self.frame = MyFrame(self.obj)
     
     
    class FrameFormat(object):
     
        def __init__(self):
            self.a = 0
     
     
    class MyFrame(FrameFormat):
     
        def __init__(self, obj):
            super(MyFrame, self).__init__()
            self.b = 2
            obj.c = 'qqsdf'
     
     
    class MyObj():
     
        def __init__(self):
            self.c = 'test'
     
     
    if __name__ == '__main__':
        test = MyApp()

  9. #9
    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
    Et si on teste, ça marche ?

    En rajoutant les lignes qu'il faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if __name__ == '__main__':
        test = MyApp()
        print(test.obj.c)
        print(test.frame.a)
        print(test.frame.b)
    vincent@tiemoko:~/Bureau$ python3 test.py 
    qqsdf
    0
    2
    
    C'est tout bon.

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

Discussions similaires

  1. PyQt et Python, des questions
    Par Malikemal dans le forum PyQt
    Réponses: 4
    Dernier message: 13/05/2012, 13h00
  2. Installation de PyQt pour Python 3 sous Linux
    Par Jiyuu dans le forum PyQt
    Réponses: 1
    Dernier message: 31/08/2011, 00h36
  3. PyQt avec Python 2.6
    Par bubuch dans le forum PyQt
    Réponses: 2
    Dernier message: 12/12/2008, 00h10
  4. Eric, PyQt et Python 2.5
    Par guizmo91 dans le forum Eric
    Réponses: 1
    Dernier message: 22/02/2008, 12h05

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