7 réponses
Pas du tout, tu crée une boule à x70 y70 et ensuite tu modifie PosX1, mais ça n'agit pas sur la boule déjà créée
mainloop() est la boucle qui attend les évènements de la fenêtre, c'est ce qui fait que le programme ne s'arrête pas après l'instruction start() et que la fenêtre reste affichée,
au contraire d'un programme qui s'exécuterai en mode console, par exemple, et dont on sort après la dernière instruction
cette boucle attend des évènements comme un clic sur un bouton, ou un clic sur quelque chose sur le Canvas, ou que l'on entre une valeur dans une Entry box, ou que l'on ferme la fenêtre, etc ...
Google est ton ami, à toi de trouver comment déplacer la boule .... :-)
(il y a une méthode pour modifier les coordonnées d'un objet)
mainloop() est la boucle qui attend les évènements de la fenêtre, c'est ce qui fait que le programme ne s'arrête pas après l'instruction start() et que la fenêtre reste affichée,
au contraire d'un programme qui s'exécuterai en mode console, par exemple, et dont on sort après la dernière instruction
cette boucle attend des évènements comme un clic sur un bouton, ou un clic sur quelque chose sur le Canvas, ou que l'on entre une valeur dans une Entry box, ou que l'on ferme la fenêtre, etc ...
Google est ton ami, à toi de trouver comment déplacer la boule .... :-)
(il y a une méthode pour modifier les coordonnées d'un objet)
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
peux-tu utiliser les balises de code pour poster ton code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je ne vois rien dans ton programme qui "déplace" la boule.
peux-tu utiliser les balises de code pour poster ton code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je ne vois rien dans ton programme qui "déplace" la boule.
En faite je pense, mais c'est surement pas comme ca qu'il faut faire, que le 'start' incremente indefiniment la valeur de PosX1 et donc que ca déplace progressivement la boule.
from tkinter import * PosX1 = 70 PosY1 = 70 def start(): global PosX1 PosX1 += 1 fenetre = Tk() canvas = Canvas(fenetre, width=700, height=500, background='white') ligne1 = canvas.create_line(30, 30, 30, 470) ligne2_1 = canvas.create_line(30, 30, 320, 30) ligne2_2 = canvas.create_line(380, 30, 670, 30) ligne3 = canvas.create_line(670, 30, 670, 470) ligne4 = canvas.create_line(30, 470, 670, 470) boule1 = canvas.create_oval(PosX1, PosY1, PosX1+20, PosY1+20, fill='black') canvas.pack() start() fenetre.mainloop()
Bonjour,
Effectivement, tu débute vraiment en programmation (tkinter ou pas)
Dans ton code, tu défini une fenêtre, tu y crée un Canvas pour pouvoir y dessiner des lignes et un cercle rempli en noir
Ensuite tu appelles une fonction start() qui incrémente la valeur de PosX1
Et c'est tout !
Ce n'est pas de la magie: le fait de changer cette variable ne va pas déplacer le cercle
Comme le dit yg_be: "je ne vois rien dans ton programme qui "déplace" la boule."
Effectivement, tu débute vraiment en programmation (tkinter ou pas)
Dans ton code, tu défini une fenêtre, tu y crée un Canvas pour pouvoir y dessiner des lignes et un cercle rempli en noir
Ensuite tu appelles une fonction start() qui incrémente la valeur de PosX1
Et c'est tout !
Ce n'est pas de la magie: le fait de changer cette variable ne va pas déplacer le cercle
Comme le dit yg_be: "je ne vois rien dans ton programme qui "déplace" la boule."
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui mais la boule dans la fenetre est créer en fonction de la variable PosX1 le fait d'incrémenter cette variable ne devrait pas créer a chaque fois une nouvelle boule légère décalé et donner l'impression qu'elle se déplace ?
L'instruction fenetre.mainloop() ne permet-elle pas de remonter a la ligne fenetre = Tk() ?
L'instruction fenetre.mainloop() ne permet-elle pas de remonter a la ligne fenetre = Tk() ?
D'accord, le problème venait du fait que je pensais que mainloop permettait d'exécuter de nouveau toutes les lignes de code. Je vais me renseigner pour trouver.
Merci beaucoup
Merci beaucoup