Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PyQT 4] Création de signal

Sujet résolu
25 février 2011 à 14:47:28

Bonjour,

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.

J'espère avoir été assez claire dans la description de mon soucis.

Je ne vous demande pas de me fournir le code entier bien évidement mais si vous aviez un début de code à me fournir je suis preneur ou du moins une bonne piste je vous en serais très reconnaissant.

J'ai regardé la création de signaux/slots :
http://web.univ-pau.fr/~puiseux/enseig [...] -slots%29.pdf
mais je n'arrive toujours pas à effectuer ce que je viens de vous expliquer.. :(


Merci d'avance ! :)
  • Partager sur Facebook
  • Partager sur Twitter
26 février 2011 à 11:50:28

tu peux essayer d'utiliser la méthode sender sur la fonction appelé par ta méthode pour savoir quelle objet t'y a envoyer
  • Partager sur Facebook
  • Partager sur Twitter
3 mars 2011 à 13:36:11

Merci beaucoup !
Cela convient parfaitement ! :D
  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2013 à 16:35:35

Bonjour,

Désolé de remonter un vieux post, mais je butte sur le même problème.

Je ne comprends pas la réponse de Mathieur__71 en ce qui concerne la méthode sender.

    myLineEdit.textChanged.connect(validateText)



def validateText(text):

    sender = self.sender()

    if not text.length() > 0:
        sender.setStyleSheet("background-color: rgba(255, 107, 107, 150);")

    else:
        sender.setStyleSheet("")


Comment récupérer mon lineEdit ?

Merci d'avance.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
8 juillet 2013 à 18:10:42

"Je ne comprends pas la réponse de Mathieur__71 en ce qui concerne la méthode sender."

S'il n'y avait que ça... :-°

Se lancer dans PyQt sans avoir les bases python, ça va être dur pour toi

  • ligne 5 -> il manque un self
  • ligne 9 -> c'est quoi ce not?
if not text.length(): # text.length()=0
    sender.setStyleSheet("background-color: rgba(255, 107, 107, 150);")

peut-être?


Sinon pourquoi ne pas créer un nouveau post où tu fais référence à celui-ci, comme tu le vois c'est résolu...

-
Edité par Anonyme 8 juillet 2013 à 18:25:29

  • Partager sur Facebook
  • Partager sur Twitter
9 juillet 2013 à 8:23:32

Merci pour votre réponse.

Je crois qu'on a tous du débuté dans un langage à un moment donné et oui je découvre Pyhton avec PyQt (est-ce si mal que ça ?).

Toutefois, je ne vois toujours pas ce que je dois faire à la ligne 5, où est-ce que je dois ajouter le self ?

Désolé de ne pas avoir créé de nouveau post, je le saurais pour la prochaine fois.

Merci.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
9 juillet 2013 à 10:00:55

"Toutefois, je ne vois toujours pas ce que je dois faire à la ligne 5, où est-ce que je dois ajouter le self ?"

Oui,

def validateText(self, text):


"Je crois qu'on a tous du débuté dans un langage à un moment donné et oui je découvre Pyhton avec PyQt (est-ce si mal que ça ?)."

Oui c'est mal, mais fait ce que tu veux, tu t'en rendras bien compte par toi même, car tu n'apprends pas que python, mais PyQt et la Programmation Orienté Objet en plus.

"Désolé de ne pas avoir créé de nouveau post, je le saurais pour la prochaine fois."

Il n'est jamais trop tard pour le faire ;)

  • Partager sur Facebook
  • Partager sur Twitter