Fenêtre tkinter ne s'ouvre pas : .pack et .grid ?

Weilbacher_Louis -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Lorsque je fais tourner mon programme, ma fenêtre tkinter ne s'ouvre pas. D'après ce que j'ai compris, cela peut venir du fait qu'il y ai un .pack et un .grid dans mon programme. Quelqu'un pourrait t'il m'éclairer ? Merci d'avance !
voici mon programme:

import random as rdm
from tkinter import *

#position d'un carré
poshaut=26
posbas=574
posdroite=774
posgauche=26

# position initiale du pion
PosX = 26
PosY = 26

def premiere_methode(): #fonction qui permet de changer les coordonnés du centre du pion
global PosX,PosY
while (PosX,PosY)!=(posdroite,posbas):
if PosX!=posdroite:
PosX+=50
collision()
Canevas.coords(Pion,PosX -10, PosY -10, PosX +10, PosY +10)
Mafenetre.after(50,premiere_methode)
elif PosX==posdroite:
PosY-=50
for k in range (15):
PosX-=50
PosY-=50
collision()
Canevas.coords(Pion,PosX -10, PosY -10, PosX +10, PosY +10) # on dessine le pion à sa nouvelle position
Mafenetre.after(50,premiere_methode)

# Création de la fenêtre principale
Mafenetre = Tk()
Mafenetre.config(width = 800, height = 600)

Canevas = Canvas(Mafenetre, width =800, height =600,bg='#DEDEDE')
Canevas.grid(row=0,column=0, columnspan=1)

def collision ():
global PosX,PosY

if PosX>= posdroite:
PosX = posdroite

if PosX<= posgauche: #collision avec le mur de gauche
PosX= posgauche

if PosY>= posbas:#collision avec le mur du bas
PosY= posbas

if PosY<= poshaut: #collision avec le mur du haut
PosY= poshaut



#création des murs
Canevas.create_rectangle(0,0,802,15, fill='red') #mur du haut
Canevas.create_rectangle(0,0,15,602, fill='red') #mur de gauche
Canevas.create_rectangle(0,585,802,602, fill='red') #mur du bas
Canevas.create_rectangle(785,0,802,602, fill='red') #mur de gauche

#Création pion

Pion = Canevas.create_oval(PosX-10,PosY-10,PosX+10,PosY+10,width=2,outline='black',fill='white')
Canevas.focus_set()
Canevas.pack(padx =1, pady =1)

x=rdm.randint(150,760)
y=rdm.randint(150,560)

#création de l'objectif
Canevas.create_oval(x,y,x+30,y+30, fill='blue')

# Création d'un widget Button (bouton Quitter)
Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5)

premiere_methode()
Mafenetre.mainloop()

Configuration: Windows / Chrome 96.0.4664.93
A voir également:

1 réponse

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 quand tu partages du code? explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

est-ce ton premier exercice avec tkinter?
as-tu essayé avec un code plus court?
0