Bonjour

Voila je rencontre un problème dit je ne comprends pas l'origine avec mon code. Théoriquement les bottons situes a cotés de la grille de sudoku permettant d'écrire dans la grille.
Mais depuis que j'ai codé une fenêtre, en guise de page d'accueil impossible d'écrire dans ma grille avec mes boutons.


Sans page d'accueil :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from tkinter import*
from random import*
ecriture=("comic sans ms",13)
nbcase=4
case=100
x0,y0=9,9
chifre=[1,2,3,4]
 
 
def fin ():
    fenetre.quit()
    fenetre.destroy()
 
def grille():
    for i in range(nbcase+1):
        Can.create_line(x0+case*i, y0,x0+case*i,y0 + nbcase*case)
        Can.create_line(x0, y0+case*i,x0+nbcase*case ,y0+case*i)
 
def place_number(event):
    TexteC.delete("0.0",END)# on efface l'écriture précédente
    TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y))
    a=(event.x)//100 #ici a est censé récupéré la position du clic pour ce qui est des abscisses
    b=(event.y)//100 #ici b fait la même chose que b mais pour lees ordonnées
    text = current
    Can.create_text(a,b,text=text) #ici la fonction est censé afficher le texte au coordonées a et b
    Can.create_text((a+0.5)*100+10,(b+0.5)*100+10,text=text) #ici on ajoute 0,5 à a et b pour centrer le nombre dans la case
 
 
def jouer(event):
    global trouve
    [i,j]=correspond(event.x,event.y)
    if i in range(nb) and j in range (nb):   # on ne fait rien si le click est hors grille
        Can.create_rectangle(x0 +c*j,y0+c*i,x0 +c*(j+1),y0+c*(i+1),fill=coul(i,j))
 
 
current = None
 
def display(x):
    def wrap():
        global current
        current = x
    return wrap
 
 
fenetre=Tk()
Cadre=Frame(fenetre)
Texte1=Label(fenetre,text="Jeu du Sudoku",fg="red",font=ecriture)
BouttonQuit=Button(fenetre,text="quitter", command=fin)
BouttonJouer=Button(fenetre,text="jouer", command=grille)
TexteC=Text(fenetre,height=25,width=25)
Can=Canvas(Cadre,height=500,width=500,bg="white")
Bouton1=Button(fenetre,text="1",command=display('1'))
 
 
Texte1.grid(row=0,column=0)
BouttonQuit.grid(row=50, column=100)
Cadre.grid(row=1,column=0)
Can.grid(row=2, column=0)
BouttonJouer.grid(row=0, column=50)
TexteC.grid(row=1, column=3)
Bouton1.grid(row=45,column=49)
 
 
Can.bind("<Button-1>",place_number)
 
fenetre.mainloop()
Maintenant avec mon semblant de page d'accueil :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from tkinter import*
from random import*
ecriture=("comic sans ms",13)
nbcase=4
case=100
x0,y0=9,9
chifre=[1,2,3,4]
 
 
def zut():
    ntm=Toplevel()
    def fin ():
        fenetre.quit()
        fenetre.destroy()
 
    def grille():
        for i in range(nbcase+1):
            Can.create_line(x0+case*i, y0,x0+case*i,y0 + nbcase*case)
            Can.create_line(x0, y0+case*i,x0+nbcase*case ,y0+case*i)
 
    def place_number(event):
        TexteC.delete("0.0",END)# on efface l'écriture précédente
        TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y))
        a=(event.x)//100 #ici a est censé récupéré la position du clic pour ce qui est des abscisses
        b=(event.y)//100 #ici b fait la même chose que b mais pour lees ordonnées
        text = current
        Can.create_text(a,b,text=text) #ici la fonction est censé afficher le texte au coordonées a et b
        Can.create_text((a+0.5)*100+10,(b+0.5)*100+10,text=text) #ici on ajoute 0,5 à a et b pour centrer le nombre dans la case
 
    def jouer(event):
        global trouve
        [i,j]=correspond(event.x,event.y)
        if i in range(nb) and j in range (nb):   # on ne fait rien si le click est hors grille
            Can.create_rectangle(x0 +c*j,y0+c*i,x0 +c*(j+1),y0+c*(i+1),fill=coul(i,j))
 
    current = None
 
    def display(x):
        def wrap():
            global current
            current = x
        return wrap
 
    Cadre=Frame(ntm)
    Texte1=Label(ntm,text="Jeu du Sudoku",fg="red",font=ecriture)
    BouttonQuit=Button(ntm,text="quitter", command=fin)
    BouttonJouer=Button(ntm,text="jouer", command=grille)
    TexteC=Text(ntm,height=25,width=25)
    Can=Canvas(ntm,height=500,width=500,bg="white")
    Bouton1=Button(ntm,text="1",command=display('1'))
    Bouton2=Button(ntm,text="2",command=display('2'))
    Bouton3=Button(ntm,text="3",command=display('3'))
    Bouton4=Button(ntm,text="4",command=display('4'))
 
    Texte1.grid(row=0,column=0)
    BouttonQuit.grid(row=50, column=100)
    Cadre.grid(row=1,column=0)
    Can.grid(row=1, column=0)
    BouttonJouer.grid(row=0, column=50)
    TexteC.grid(row=1, column=3)
    Bouton1.grid(row=45, column=49)
    Bouton2.grid(row=45, column=48)
    Bouton3.grid(row=45, column=47)
    Bouton4.grid(row=45, column=46)
 
    Can.bind("<Button-1>",place_number)
 
 
 
fenetre=Tk()
 
 
 
Texte=Label(fenetre,text="Bienvenue dans le jeu de sudoku",fg="red")
Texte.grid(row=0,column=3)
 
Boutoniveau1=Button(fenetre,text="Niveau 1",command=zut)
Boutoniveau1.grid(row=2,column=3)
 
 
fenetre.mainloop()