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

Résolu/Fermé
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023 - 16 déc. 2022 à 17:16
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 - 17 déc. 2022 à 14:18

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


3 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 16 déc. 2022 à 18:31

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
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
16 déc. 2022 à 21:48

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

0
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
16 déc. 2022 à 21:57

La couleur est PCHIColor1 et pas PCHIEColor1.

0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
16 déc. 2022 à 19:06

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
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
16 déc. 2022 à 21:55

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

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178 > Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
17 déc. 2022 à 09:29

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

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
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
17 déc. 2022 à 09:31

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

0
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023 > Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
17 déc. 2022 à 11:59

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
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178 > Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
17 déc. 2022 à 13:46

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
Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023 > Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
17 déc. 2022 à 13:50

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

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178 > Pr.Witherfire Messages postés 79 Date d'inscription samedi 5 novembre 2022 Statut Membre Dernière intervention 25 février 2023
17 déc. 2022 à 13:59

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

0