J'ai créer un canvas, dans lequel j'ai placé un widget de saisie, et deux boutons. Je voudrais pouvoir les supprimer ou les cacher à la fin d'une fonction. Mais ces 3 widgets sont positionnés avec la fonction place() et je ne peux donc pas utiliser pack_forget(). J'ai aussi essayé d'utiliser canva.itemconfig(widget,state = 'hidden') mais cela ne fonctionne pas non plus.
Voici mon code:
dessin=Canvas(FrameNumeration, bg="white", width=1220,
height=175, bd=0,
highlightthickness=0,
highlightbackground="sky blue")
dessin.pack(side=TOP)
line = dessin.create_line((110,90),(1110,90), width = 4)
#linel,linel2 = [[] for i in range(0,11)],[[] for i in range(0,10)]
labelline1 = Label(dessin, text=textlabel1, font = ( "New Roman" , 20 ), fg = 'black', bg = 'white')
labelline1.place(x = X1,y = 45, anchor = 'center')
labelline2 = Label(dessin, text=textlabel2, font = ( "New Roman" , 20 ), fg = 'black', bg = 'white')
labelline2.place(x = X2,y = 45, anchor = 'center')
labelline3 = Label(dessin, text=textlabel3, font = ( "New Roman" , 20 ), fg = 'black', bg = 'white')
labelline3.place(x = X3,y = 45, anchor = 'center')
linel,linel_c = [[] for i in range(0,101)],[[] for i in range(0,101)]
for i in range(0,101):
if i%10 == 0:
if niveau==5 and i%20 != 0:
linel[i] = dessin.create_line(((110+i*10),75),((110+i*10),95),width = 2,activefill = 'light green')
coord = dessin.coords(linel[i])
linel_c[i] = [coord[0],0]
else:
linel[i] = dessin.create_line(((110+i*10),80),((110+i*10),100),width = 3,activefill = 'light green')
coord = dessin.coords(linel[i])
linel_c[i] = [coord[0],0]
else:
linel[i] = dessin.create_line(((110+i*10),85),((110+i*10),95),width = 2,activefill = 'light green')
coord = dessin.coords(linel[i])
linel_c[i] = [coord[0],0]
linel_c.sort(key=lambda x: x[0])
linel_c0 = [x[0] for x in linel_c]
Va102 = IntVar()
def detec_clic(event):
print('fonction')
Va10 = IntVar()
x , y = event.x, event.y
rangex = np.arange(x-2,x+2)
for k in range(0,len(rangex)):
if rangex[k] in linel_c0:
index = linel_c0.index(rangex[k])
saisie = Entry(dessin, width=5, bg='white', font = ( "New Roman" , 25 ))
saisie.place(x = rangex[k],y = 120,anchor = 'center')
redB = Button(dessin,width = 1,bg = 'red')
redB.place(x = rangex[k]-18,y = 155,anchor = 'center')
greenB = Button(dessin,width = 1, bg = 'green', command = lambda: click(Va10))
greenB.place(x = rangex[k]+18, y = 155,anchor = 'center')
dessin.wait_variable(Va10)
linel_c[index][1] = saisie.get()
dessin.itemconfig(linel[index],fill = 'blue')
###Je voudrais que saisie, redB et greenB soit supprimé ou masqué à ce niveau là.
Va102.set(1)
dessin.bind("<Button-1>", detec_clic)
FrameNumeration.wait_variable(Va102)
Va102 = IntVar()
dessin.bind("<Button-1>", detec_clic)
FrameNumeration.wait_variable(Va102)
Va102 = IntVar()
dessin.bind("<Button-1>", detec_clic)
FrameNumeration.wait_variable(Va102)
Auriez -vous des idéés?
Merci beaucoup!
- Edité par HélèneRousseau1 20 juillet 2023 à 4:13:02
place_forget() fonction parfaitement merci infiniment!
Bonjour,
Sujet résolu
Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e
Cacher, supprimer un widget dans un canva tkinter
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
PB68