Tkinter - La fonction .get() ne fonctionne pas

Fermé
Firamen_9118 Messages postés 3 Date d'inscription vendredi 4 janvier 2019 Statut Membre Dernière intervention 4 janvier 2019 - Modifié le 4 janv. 2019 à 15:01
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 4 janv. 2019 à 20:50
Bonjour,

Je suis débutant en programmation et je me lance dans un code pour apprendre, car comme on dit "on n'est jamais mieux former que sur le terrain", le problème c'est que je ne trouve pas pourquoi ma fonction .get() ne fonctionne pas !

from tkinter import *

#DEFINITION DE TOUTES LES FONCTIONS

def main():
 main=Tk()
 main['bg']='black'
 main.geometry("1000x800+100+100")
 main.title('GLOBAL RESCUE SYSTEM')
 Menu=Label(main,text='Bienvenue sur GRS\nVous êtes dans le menu principal, veuillez choisir :', bg='black', fg='white').pack()
 INTERVENTION=Button(main,text='Gestion d\'une intervention', command=intervention).pack()
 OPERATION=Button(main,text='Gestion opérationnelle').pack()
 CTACODIS=Button(main,text='CTA-CODIS').pack()
 QUITTER=Button(main,text='QUITTER GRS', command=quit).pack()

def intervention():
 inter=Tk()
 inter['bg']='black'
 inter.geometry("1000x800+100+100")
 inter.title('GRS - Gestion d\'une intervention')
 intervention=Label(inter,text='Bienvenue sur l\'interface de gestion des intervention\nChoisissez le type d\'intervention :', bg='black', fg='white').pack()
 SUAP=Button(inter,text='SUAP', command=suap).pack()
 INCENDIE=Button(inter,text='Incendie').pack()
 OP_DIV=Button(inter,text='Opération diverse').pack()
 ACCIDENT=Button(inter,text='Accident').pack()
 RETURN=Button(inter,text='Retour au menu principal', command=inter.destroy).pack()

def suap():
 suap=Tk()
 suap['bg']='black'
 suap.geometry("1000x800+100+100")
 suap.title('GRS - Gestion d\'une intervention SUAP')
 t1=Label(suap,text='Numéro de l\'intervention :',bg='black',fg='white').pack()
 e1=Entry(suap,width=10,bg='#808080').pack()
 TypeInter=Listbox(suap,width=45,bg='#303030',fg='white',yscrollcommand=True)
 TypeInter.insert(1, "BLESSE DOMICILE")
 TypeInter.insert(2, "BLESSE VP")
 TypeInter.insert(3, "BLESSE ERP")
 TypeInter.insert(4, "BLESSE SPORT")
 TypeInter.insert(5, "MALAISE/MALADIE DOMICILE")
 TypeInter.insert(6, "MALAISE/MALADIE VP")
 TypeInter.insert(7, "MALAISE/MALADIE ERP")
 TypeInter.insert(8, "URGENCE VITALE BLESSE DOMICILE")
 TypeInter.insert(9, "URGENCE VITALE BLESSE VP")
 TypeInter.insert(10, "URGENCE VITALE BLESSE ERP")
 TypeInter.insert(11, "URGENCE VITALE BLESSE SPORT")
 TypeInter.insert(12, "URGENCE VITALE MALAISE/MALADIE DOMICILE")
 TypeInter.insert(13, "URGENCE VITALE MALAISE/MALADIE VP")
 TypeInter.insert(14, "URGENCE VITALE MALAISE/MALADIE ERP")
 TypeInter.pack()
 t2=Label(suap,text='Nombre de victime(s) :').pack()
 g1=StringVar()
 e2=Entry(suap,width=5,textvariable=g1,bg='#808080').pack()
 NombreVictime=int(get.g1())

 test=Label(suap,text=print(NombreVictime)).pack()


 RETURN=Button(suap,text='Retour à la gestion d\'intervention',command=suap.destroy).pack()



#LAUNCH

main()


Le message d'erreur est le suivant :
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Program Files (x86)\Python\lib\idlelib\run.py", line 137, in main
seq, request = rpc.request_queue.get(block=True, timeout=0.05)
File "D:\Program Files (x86)\Python\lib\queue.py", line 172, in get
raise Empty
queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Program Files (x86)\Python\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "D:\Documents\Algo\GRS.0.1.py", line 55, in suap
NombreVictime=int(get.g1())
NameError: name 'get' is not defined

Bon je sais que pour l'instant la valeur est récupérée dès la création de l'Entry, je n'ai pas encore eu le temps de faire un bouton, mais j'avais déjà essayer avant et j'avais la même erreur.

Donc voilà, si quelqu'un peut m'aider ce serait très gentil.
A voir également:

1 réponse

Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
4 janv. 2019 à 15:24
NombreVictime=int(get.g1())


Aucune variable ne s'appelle get dans ton code. get n'est pas défini (d'où l'erreur : NameError: name 'get' is not defined )
1
Firamen_9118 Messages postés 3 Date d'inscription vendredi 4 janvier 2019 Statut Membre Dernière intervention 4 janvier 2019
4 janv. 2019 à 15:40
Oui merci, je me suis tromper dans le sens d'écriture j'ai noter
get.g1()
au lieu de
g1.get()
.

bon du coup j'ai changer la fin de ma fonction suap()
        t2=Label(suap,text='Nombre de victime(s) :').pack()
	g1=StringVar()
	e2=Entry(suap,width=5,textvariable=g1,bg='#808080').pack()
	Get=Button(suap,text='OK',command=print(g1.get())).pack()


Et j'ai toujours un problème rien n'ai renvoyé quand je clique sur le bouton
0
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
4 janv. 2019 à 18:25
Oui, mais cette fois-ci l'erreur est différente. Je peux l'avoir ?
0
Firamen_9118 Messages postés 3 Date d'inscription vendredi 4 janvier 2019 Statut Membre Dernière intervention 4 janvier 2019
4 janv. 2019 à 19:18
Je n'ai pas de message d'erreur le code est exécuter sans problème, j'ai juste aucun retour sur la console du
Get=Button(suap,text='OK',command=print(g1.get())).pack()
, mais le bouton apparait bien.
0
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
4 janv. 2019 à 20:50
Je suis pas sûr que ça puisse fonctionner comme ça. Essaye de remplacer la ligne :
Get=Button(suap,text='OK',command=print(g1.get())).pack()


par
Get=Button(suap,text='OK',command=afficher).pack()
def afficher():
   print(g1.get())
0