Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PyQT 4] Récupérer le sender d'un signal

    9 juillet 2013 à 10:57:24

    Bonjour,

    Je suis confronté à la même problématique décrite ici et je bute toujours sur un soucis.

    "J'aimerais créer un signal émis par un QLineEdit. En effet je souhaiterais qu'un signal soit émis à chaque fois que le texte change (équivalent au signal TextChanged()) mais qui, au lieu d'envoyer uniquement le texte, envoie aussi le QLineEdit émetteur du signal, afin que je puisse colorer le fond de celui-ci si le texte ne correspond pas à la valeur attendue."

    Mon code est le suivant :

        myLineEdit.textChanged.connect(validateText)
    
    
    
    
    def validateText(self, text):
    
        sender = self.sender()
    
        if not text.length(): # text.length() = 0
            sender.setStyleSheet("background-color: rgba(255, 107, 107, 150);")
    
        else:
            sender.setStyleSheet("")

    Et l'erreur retournée est la suivante :

    TypeError: validateText() takes exactly 2 arguments (1 given)

    Merci d'avance.

    PS: ce post est la suite du précédemment cité, vu qu'il est résolu.

    • Partager sur Facebook
    • Partager sur Twitter
      9 juillet 2013 à 14:09:44

      Il manque le self. devant ton valideText dans ton connect.
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2013 à 14:00:14

        Merci de la réponse mais j'ai maintenant l'erreur suivante :

        NameError: global name 'self' is not defined

        myLineEdit.textChanged.connect(self.validateText)



        • Partager sur Facebook
        • Partager sur Twitter
          10 juillet 2013 à 14:42:17

          Euh... Tu es bien sûr de déclarer une méthode dans ta classe, là ?
          • Partager sur Facebook
          • Partager sur Twitter

          [PyQT 4] Récupérer le sender d'un signal

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown