Récupérer valeur Entry
tatal21820
Messages postés
37
Statut
Membre
-
tatal21820 Messages postés 37 Statut Membre -
tatal21820 Messages postés 37 Statut Membre -
Bonjour, à tous
Je n arrive pas à récupérer la valeur de mon
Un petit coup de main s'il vous plaît, merci
Je n arrive pas à récupérer la valeur de mon
tk.Entrypour afficher une date selon l'année saisie.
Un petit coup de main s'il vous plaît, merci
# -*- coding: utf-8 -*-
"""@author: ****"""
import datetime
from tkinter import *
from time import strftime
import locale
import locale
locale.setlocale(locale.LC_ALL, 'fr_FR')
master = Tk()
annee = champNom.get()
master.title("Tableau de bord") # Nom de la fenêtre
master.geometry("600x200") # Dimentions de la fenêtre
def createWin4():
win4 = Toplevel(master)
win4.title("Selection Année")
win4.geometry("150x100")
win4.iconbitmap("gdata_icon.ico")
win4.config(background='#5D6D7E')
def action():
lblResultat['text'] = champNom.get()
ok = Button(win4, text="Valide", command=action)
btn_quit = Button(win4, text="Quitter", command=win4.destroy)
btn_quit.place(x=80, y=70)
lbl_ent_an = Label(win4, text="Entrer Année", font='Arial 15', fg='WHITE', bg='#5D6D7E')
lbl_ent_an.place(x=10, y=0)
champNom = Entry(win4)
lblResultat = Label(master, text="", font='Arial 35', relief=FLAT)
champNom.place(x=10, y=40)
lblResultat.place(x=300, y=25)
ok.place(x=15, y=70)
btn_select_annee = Button(master, text="Année :", command=createWin4, font='Arial 30', relief=RAISED)
btn_select_annee.place(x=100, y=20)
j_1 = datetime.datetime(annee, 1, 1).strftime('%A %d %B') # Jour de l'an
lbl1 = Label(master, text=j_1, font='Arial 20')
lbl1.place(x=50, y=150)
master.mainloop()
3 réponses
-
Bonjour,
on y verrait plus clair si tu affichais ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ça:
for k in range(10): print(k) -
Bonjour,
Ligne 13 : tu essayes de récupérer la valeur dechampNom
qui n'est pas encore déclarée à ce stade. Et cette variable est locale à la fonctioncreateWin4
, donc aucune chance qu'elle soit visible à l'extérieure de cette fonction.
Ensuite il faut spécifier sur quel événement (par exemple, lorsque tu cliques sur un bouton donné) tu vas récupérer la valeur de ce champ, et faire la récupération dans la callback associée à cet événement. Typiquement, lestk.Button
exposent via le paramètrecommand
une callback déclenchée lorsqu'on clique dessus. Il faut t'assurer quechampNom
est défini à l'endroit où tu déclares ladite callback.
Le problème, c'est que dans ton code, le champ n'apparaît que quand tu cliques surbtn_select_annee
. Deux solutions :- soit tu crées tous les widgets de ta fenêtre dès le début (quitte à les masquer démasquer) ;
- soit tu prévois une classe qui enveloppe toute ta fenêtre et dans laquelle tu garderas un pointeur vers chaque widget (notamment
self.champNom
).
Bonne chance -