Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2971 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [python] controle textCtrl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[python] controle textCtrl

n°745109
startx25
Posté le 30-05-2004 à 11:31:34  profilanswer
 

j'ai deux controle textCtrl et un bonton pour l'action.
 
je cherche à afficher le double de la valeur entrée dans le controle textctrl, mais ça ne marche po ?
 
 
 
 
    def OnButton1Button(self, event):
        nbr=self.textCtrl2.GetValue()
        self.textCtrl1.SetValue(nbr*2)
 
 

mood
Publicité
Posté le 30-05-2004 à 11:31:34  profilanswer
 

n°745115
Kristoph
Posté le 30-05-2004 à 11:40:00  profilanswer
 

Je suis pret à parier que ton textCtrl2 contient une string et non pas un nombre. Cela explique pourquoi tu ne peux pas modifier sa valeur par 2 comme ça.

n°745897
Tuzz
Posté le 31-05-2004 à 10:22:17  profilanswer
 

si ce qu'il dit est vrai fait :
nbr=self.textCtrl2.GetValue()
        self.textCtrl1.SetValue(int(nbr)*2)  
 
(merci taz :) )

n°746491
startx25
Posté le 31-05-2004 à 18:35:07  profilanswer
 

merci effectivement convertissant ça fonctionne (un peu con ce controle ? textCtrl) vous trouvé pas ?

n°746982
masklinn
í dag viðrar vel til loftárása
Posté le 01-06-2004 à 09:07:43  profilanswer
 

startx25 a écrit :

merci effectivement convertissant ça fonctionne (un peu con ce controle ? textCtrl) vous trouvé pas ?


Bennnn non, tu rentres du texte (string) ca te sort du texte (string), qu'est ce que ca a de con?

n°749271
startx25
Posté le 02-06-2004 à 18:36:24  profilanswer
 

c'est qui est con c'est de pas pouvoir faire ceci : self.textCtrl1.SetValue(nbr*2)  
et de passer par un convertisseur de type : self.textCtrl1.SetValue(int(nbr)*2)  
 
 
il pourrait s'en douter puisque c'est pour un textCtrl

n°750285
SomeBugsIn​Me
life suxx
Posté le 03-06-2004 à 10:46:42  profilanswer
 

startx25 a écrit :


il pourrait s'en douter puisque c'est pour un textCtrl


 

Citation :


nbr=self.textCtrl2.GetValue()
self.textCtrl1.SetValue(nbr*2)


 
ben, c'est un textCtrl justement.
 
Et de toute façon, l'interpréteur ne peut pas deviner que t'utilises ta variable en tant que int et non string.
Car tu récupères d'abord une chaîne avec ton GetValue()

n°750300
masklinn
í dag viðrar vel til loftárása
Posté le 03-06-2004 à 10:57:45  profilanswer
 

startx25 a écrit :

c'est qui est con c'est de pas pouvoir faire ceci : self.textCtrl1.SetValue(nbr*2)  
et de passer par un convertisseur de type : self.textCtrl1.SetValue(int(nbr)*2)  
 
 
il pourrait s'en douter puisque c'est pour un textCtrl


Heuu ton problème n'a rien a voire avec le textCtrl hein, c'est un problème de typage.
 
Tu récupères un string depuis ton textCtrl2, depuis quand on peut faire une multiplication sur un string en python? ben oui on peut pas, donc tu dois forcer un cast du string en int (par la fonction int(nbr)), puis il fait un cast automatique d'int vers string pour l'afficher
 
C'est de la logique de base et la resultante du typage "fort" de python. (ya pas beaucoup de langages dans lequel "machin"*2 a un sens en fait, et c'est exactement ce que tu essaies de nous faire ici)
 
Si le problème avait été que textCtrl ne faisait pas de cast, tu aurais du écrire str(int(nbr)*2), c'est pas le cas donc on voit bien que le textCtrl fait un cast implicite int->str
 
 
PS: tu peux essayer d'ailleurs, après "nbr=self.textCtrl2.GetValue()" ajoutes une ligne "print type(nbr)", je te parie un paquet de cacahuettes qu'il va répondre "<type 'str'>"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [python] controle textCtrl

 

Sujets relatifs
thread en pythonlongueur d'un fichier (python)
Controle date+heurecontrole de la saisie d'un double
[Python] charset, coding, accents et page htmlDébutant en python cherche aide
Lancer un prog python en servicesite web en python
[python] problème avec les nombres réels[ide python] quel editeur utilisez vous ?
Plus de sujets relatifs à : [python] controle textCtrl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR