首页 > 解决方案 > _tkinter.TclError:无效的命令名称“.!frame.!entry”

问题描述

我对 tkinter 有疑问Entry。当我想检索或删除我的条目的内容时,prgrame 向我显示错误:

_tkinter.TclError:无效的命令名称“.!frame2.!entry2”

或者

_tkinter.TclError:无效的命令名称“.!frame.!entry”

这是我的程序:

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

我到处寻找,但到目前为止,我还没有找到任何适合我的答案。有人能帮我吗 ?

标签: pythontkinter

解决方案


推荐阅读