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 -
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()
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:
- Fenêtre tkinter ne s'ouvre pas : .pack et .grid ?
- Windows ne s'ouvre pas - Guide
- Fenetre windows - Guide
- Fenêtre hors écran windows 11 - Guide
- Ouvrir une fenêtre de navigation privée - Guide
- Mcafee fenetre intempestive - Accueil - Piratage
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?
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?