Débutant, animation Tkinter
Bonjour,
Je suis nouveau dans python, et j'aimerai savoir pourquoi ce code ne fonctionne pas.
J'ai essayé de faire la boule qui rebondit sur les 4 coins de l'écran, mais je me suis heurté à un gros problème:
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
from Tkinter import *
from time import *
def initialize(title = 'MonApplication'):
global app
app = Tk()
app.title(title)
app.geometry('400x420')
#Canvas
global can
can = Canvas(app, width = 400, height = 400, bg = 'green')
can.pack()
#Label
new = Label(app,text = 'Appuyer sur N pour demarrer')
new.pack()
#Evenement
app.bind_all('<n>',Nouveau)
app.bind_all('<q>'Quit)
#Coordonnée balle
global x,y
x , y = 0, 50
def Nouveau(event): #Quand on appui sur N
Animate()
def Animate()
global x,y
while 1:
boule = can.create_oval(x,x,y,y,fill = 'red')
x = x+10
y = y+10
sleep(1) #On attent 1 seconde
def Quit(event):
app.destroy()
#Le main
initialize('Une balle qui rebondit')
app.mainloop()
app.destroy() |
Le problème est la boucle infinie, 'While 1'.
Elle provoque un plantage du programme, alors que normalement, c'est
juste un thread qui est lancé, donc on pourrait toujours appuyé sur Q ?
Merci de vos réponses