RE : Problème d'entry(décidement)

Résolu

Bonjour. Me revoila devant un probleme d'entry. Je poste quand meme une nouvelle discussion car ce n'est pas la meme chose.

from tkinter import *
PCHIFParametres = Tk()



def PCHIFoGetColor1(event):
    PCHIColor1 = PCHIEColor1.get()
    print(PCHIColor1)

PCHIEColor1 = Entry(PCHIFParametres, width=30)
PCHIEColor1.pack()
PCHIFParametres.bind('<Return>', PCHIFoGetColor1)


PCHIFParametres.mainloop()

Ceci marche

def PCHIFoParametres():


    PCHIFParametres = Tk()
    PCHIFParametres.title("PCHI ")
    PCHIFParametres.resizable(0, 0)
    PCHIFParametres.config(bg=PCHIColor1)
    PCHIFParametres.geometry("400x200+200+200")

    def PCHIFoGetColor1(event):
        PCHIColor1 = PCHIEColor1.get()
        print(PCHIColor1)

    def PCHIFoGetColor2(event):
        PCHIColor2 = PCHIEColor2.get()
        print(PCHIColor2)

    def PCHIFoGetPolice(event):
        PCHIPolice = PCHIEPolice.get()
        print(PCHIPolice)

    PCHIEColor1 = Entry(PCHIFParametres, width=30)
    PCHIEColor1.pack()

    PCHIEColor2 = Entry(PCHIFParametres, width=30)
    PCHIEColor2.pack()

    PCHIEPolice = Entry(PCHIFParametres, width=30)
    PCHIEPolice.pack()

    PCHIFParametres.bind('<Return>', PCHIFoGetColor1)
    PCHIFParametres.bind('<Return>', PCHIFoGetColor2)
    PCHIFParametres.bind('<Return>', PCHIFoGetPolice)

    PCHIFParametres.mainloop()

Ca non.

Pouvez vous m'aider. Merci


Que Notch soit avec vous

3 réponses

  1. Bonsoir,

    Je vois la définition d'une fonction PCHIFoParametres()

    mais elle n'est jamais appelée, donc il ne se passe rien...

    Sinon,  PCHIEColor1 est l'identifiant d'une Entry, et tu essaies de t'en servir comme d'une couleur:

    PCHIFParametres.config(bg=PCHIColor1)

    Et ça, ce n'est pas très beau:

    PCHIColor1 = PCHIEColor1.get()

    tu écrases le nom de l'entry avec son contenu !

    J'ajoute qu'avec les 3 bind à la fin, en appuyant sur Return, tu lances les 3 fonctions à la fois !

    Décidément, Il faut vraiment que tu revoies les bases ...

    0
    1. Ok désolé. J'ai effectivement oublié d'appeler la fonction. Désolé aussi pour le problème de bind... :(

      0
    2. La couleur est PCHIColor1 et pas PCHIEColor1.

      0
  2. Contributeur Ambassadeur

    bonjour,

    décidément, tu ne te fatigues pas!  prends le temps de nous expliquer ce qui ne marche pas dans ton second code.  Surtout, prends le temps d'expliquer comment tu le testes.  Teste le mieux, en mettant du texte dans PCHIEPolice, et tu constateras qu'il fonctionne partiellement.

    0
    1. D'accord désolé. Justement, je ne sais pas ce qui ne marche pas. J'ai testé Color1 et Color2 mais pas Police...

      0
    2. @Pr.Witherfire

      Ca ne te parait pas évident que si tu bind la fenêtre principale (PCHIFParametres) à Return, 

      en appuyant sur Return, ca va lancer les 3 fonctions en même temps ?

      (d'où le problème)

      0
  3. Bonsoir,

    Comme signalé, tu ne peux écraser les events ainsi, on peut toutefois le faire en utilisant le paramètre add, mais ce n'est pas ce que tu veux dans ton script.

    Tu dois relier tes bind à chacun de tes entry.

    Donc de ça

    PCHIFParametres.bind('<Return>', PCHIFoGetColor1)
    PCHIFParametres.bind('<Return>', PCHIFoGetColor2)
    PCHIFParametres.bind('<Return>', PCHIFoGetPolice)

    à

    PCHIEColor1.bind('<Return>', PCHIFoGetColor1)
    PCHIEColor2.bind('<Return>', PCHIFoGetColor2)
    PCHIEPolice.bind('<Return>', PCHIFoGetPolice)

    Tu devrais aussi utiliser des noms de variables plus distinctes et moins enclines à des erreurs et confusions de noms.

    0
    1. C'est vrai qu'entre PCHIColor1, PCHIEColor1 la différence ne saute pas immédiatement aux yeux ...

      0
    2. @Phil_1857

      Oui désolé. Mais je suis "obligé" d'utiliser des noms compliqués car d'une part, afin de ne pas confondre les variables crées par l'utilisateur et les variables systèmes, je nomme les variables systèmes avec PCHI devant. Ensuite, pour m'y retrouver (cela correspond à ma logique) je leur donne un type (Fo pour fonction, F pour fenêtre, B pour bouton,ect...). Désolé pour la difficulté de lecture de mes codes qui en résulte...

      0
    3. @Pr.Witherfire

      obligé, obligé, faut voir ...

      C'est quoi une variable système ?

      PCHIFoGetColor2 est une fonction
      PCHIEColor1 est un nom d'entry

      pourquoi PCHIE ?

      J'ai déjà vu des tas de codes professionnels et ils sont plus beau que ça...

      0
    4. @Phil_1857

      Une variable système, c'est une variable utilisée par le logiciel. PCHIE = PCHI(variable système)+E(Entry).

      0
    5. @Pr.Witherfire

      tu te complique ben l'existence mon gars :-)

      0