I have a problem with a tkinter Entry. When I want to retrieve or delete the content of my entry,
the prgrame shows me the error :
_tkinter.TclError: invalid command name ".!frame2.!entry2"
or
_tkinter.TclError: invalid command name ".!frame.!entry"
Here is my program :
def boutton():
global nbr, m_a_t
if nbr == 0 :
w_t_f = ask_word_p2() # w_t_f == word to find / != what the fuck xD
if w_t_f == None :
print(None)
nbr -= 1
else :
m_a_t = w_t_f
info.delete(0,END)
entre.delete(0,END)
trais_start(m_a_t)
elif nbr == 1 :
lttr_test = try_lettre()
trais(m_a_t)
box_right = Frame(window,bg=bg)
titre_c = Entry(box_right, font=("Helvetica Neu",25), bg=bg, fg=fg, bd=0,
highlightthickness=0)
titre_c.grid(row=1, column=0, pady=10)
entre = Entry(box_right, font=("Helvetica Neu",25), bg=bg, fg=fg, bd=1, highlightthickness=1)
entre.grid(row=2, column=0, pady=10)
b1 = Button(box_right, text="Entrer", font=("Helvetica Neu",30), bg=fg, fg=bg,
command=boutton)
b1.grid(row=3, column=0, pady=10, sticky="we")
info = Entry(box_right, font=("Helvetica Neu",25), bg=bg, fg=fg, bd=0, highlightthickness=0)
info.grid(row=4, column=0, pady=10)
box_right.grid(row=0, column=1, pady=40)#, padx=50)
def insert_titre_c(txt):
global titre_c
titre_c.delete(0,END)
titre_c.insert(0, txt)
def insert_entre(txt):
global entre
entre.delete(0,END)
entre.insert(0, txt)
def insert_info(txt):
global info
info.delete(0,END)
info.insert(0, txt)
def ask_word_p2():
global entre, l_min, info
insert_titre_c("Mot à faire deviner au j2 :")
...
if error == "other_cara" :
insert_info("Veuliez entrer uniquement des lettres.") #here it works
return None
if len(mot) == 0 :
insert_info("Entrer au moins une lettre.") #here it also works
return None
elif error == "" :
return mot
def trais_start(mot):
global m_a_t, l_cara
trai = ""
t = 0
for x in m_a_t :
t += 1
if t == len(m_a_t) : # pr pas metre d'espace à la fin
tr = "_"
trai = trai + tr
else :
tr = "_" + " "
trai = trai + tr
l_cara.append(tr)
tt = "Mot à trouver : " + trai
insert_titre_c(tt)
def trais(lt):
global m_a_t, l_cara
tt = "Mot à trouver : " + lt
insert_titre_c(tt)
def try_lettre():
global m_a_t, l_min, l_try, vie, l_cara, entre
insert_titre_c("Entrez une lettre : ") #error 1
lettre = entre.get() #error 2
if len(lettre) < 1 :
insert_info("Veuillez entrez une lettre.")
elif len(lettre) > 1 :
insert_info("N'entrez q'une lettre.")
...
return mot
I've looked everywhere but so far I haven't found any answers that work for me. Can someone help me ?