Bonjour,
J'ai une question à laquelle je ne peux répondre:
Je code une interface avec Tkinter.
Dans la définition d'une fonction, je demande de créer un bouton et un texte qui s'affichent normalement.
Tout va bien, ils s'affichent, mais lorsque que je clique sur le bouton, je suis sensé être "amené" une autre fonction.
Or, cette autre fonction demande de supprimer le texte créé dans la première définition.
C'est là que ça ne fonctionne pas, python m'affiche un message d'erreur comme quoi le nom de mon texte n'a pas été défini, qu'il ne correspond à rien.
Je ne comprend pas car habituellement j'utilise la même méthode pour supprimer un "objet" et là ça ne fonctionne pas seulement avec les "objets" créé dans la définition d'une fonction (je pense d’ailleurs que ça vient de là).
Est-ce que quelqu'un sais comment faire ?
Si vous n'avez pas tout compris (ce qui est normal vu ma description), voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 from tkinter import * fenetre = Tk () fenetre.title("Mon programme") import tkinter.font fond=tkinter.font.Font(fenetre, size=18, family='Trebuchet MS') fond.config(size=18, family='Trebuchet MS') def jouer (): canvas.delete(textebase) #C'est là que ça ne fonctionne pas et que le messsage d'erreur arrive pret = canvas.create_text(250, 90, text="PRET??", font="Arial 16") canvas.pack() pret=Button(fenetre, text="Commencer", font=fond) #commande pas encore défini (ne pas s'en occuper) pret.pack() def suite (): bout.destroy() #Ces suppressions là fonctionne (texte1 et bout on été créer en dehors d'une définition de fonction canvas.delete(texte1) textebase = canvas.create_text(250, 150, text="Bonjour, pour commencer le jeu, cliquez sur \"Jouer\".", font="Arial 16") #là je créé mon bouton, et mon texte qui ne voudra pas se supprimer jeu=Button(fenetre, text="Jouer", font=fond, command=jouer) #là j'ai mon bouton qui donne un message d'erreur lorsque je clique dessus jeu.pack() canvas = Canvas(fenetre, width=500, height=300, background='white') canvas.pack() texte1= canvas.create_text(250, 150, text="Bienvenue,\nAppuyez sur \"continuer\" pour commencer le jeu.", font="Arial 16") canvas.pack() bout=Button(fenetre, text="continuer", font=fond, command=suite) bout.pack() fenetre.mainloop()
Et voici le message d'erreur exacte qui s'affiche lorsque je clique sur mon bouton "jouer":
Comme vous le voyez python affiche : "NameError: name 'textebase' is not defined"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 1549, in __call __ return self.func(*args) File "<stdin>", line 2, in jouer NameError: name 'textebase' is not defined
Merci d'avance pour vos réponse
Cordialement
Corentin
Partager