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 :

Signal et slot entre classes [QtCore]


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Signal et slot entre classes
    Bonjour,

    J'essaye dialoguer entre classes avec pyside.

    Je me suis inspirer de la doc officielle pyside mais simplement en transposant en 'objet', la focntion 'saysomething' ne reçoit plus un 'str' ou 'int' .
    Je dois avoir des lacunes en objet ....

    Merci pour votre aide, je sèche un peu..

    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
     
    # define a new slot that receives a C 'int' or a 'str'
    # and has 'saySomething' as its name
     
    class mere(QtCore.QObject):
         @QtCore.Slot(int)
         @QtCore.Slot(str)
         def saySomething(stuff,self):
                  print stuff
                  print type(stuff)
     
    class Communicate(QtCore.QObject):
        # create two new signals on the fly: one will handle
        # int type, the other will handle strings
        speakNumber = QtCore.Signal(int)
        speakWord = QtCore.Signal(str)
     
    someone = Communicate()
    mam=mere()
    # connect signal and slot properly
    someone.speakNumber.connect(mam.saySomething)
    someone.speakWord.connect(mam.saySomething)
    # emit each 'speak' signal
    someone.speakNumber.emit(10)
    someone.speakWord.emit("Hello everybody!")

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    En python, le premier argument de chaque methode est toujours la référence sur l'instance de l'objet. Généralement, on utilise le mot "self" mais il s'agit uniquement d'une convention.
    Dans ton script, tu cherches à afficher stuff qui est en fait l'instance de l'objet!
    Ton code devrait donc être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def saySomething(self, stuff):
                  print stuff
                  print type(stuff)
    Sinon, juste pour info sur les signaux/slots en PySide, quand tu utilises des signaux ayant le même nom mais une signature différente, il convient de préciser le type lors de l'utilisation du signal afin d'éviter toute ambiguïté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @QtCore.Slot(int)
    @QtCore.Slot(str)
    def slot(value):
         print value
     
    spinBox = QtGui.QSpinBox()
    spinBox.valueChanged[int].connect(slot)
    spinBox.valueChanged[int].emit(10)
     
    spinBox.valueChanged[str].connect(slot)
    spinBox.valueChanged[str].emit('51')

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci GAbibol,

    Ce sont donc bien mes lacunes en Python
    Je rebosse la dessus, je découvre python et c'est vraiment top.

    Bonne journée

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

Discussions similaires

  1. Signal et slot entre deux projets
    Par Toto ZEHERO dans le forum Débuter
    Réponses: 4
    Dernier message: 06/12/2014, 17h02
  2. Connexion entre signal et slot
    Par illyria86 dans le forum Débuter
    Réponses: 6
    Dernier message: 15/01/2011, 18h45
  3. Réponses: 4
    Dernier message: 03/09/2010, 15h52
  4. Erreur signaaux et slots entre 2 classes
    Par Shaika-Dzari dans le forum Qt
    Réponses: 4
    Dernier message: 20/04/2007, 13h27
  5. [AS2] liaison entre classe et symbole
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 04/07/2005, 09h41

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