【问题标题】:When the entry field is empty, and I click the translate button, how do I make the output field return nothing in Tkinter?当输入字段为空并单击翻译按钮时,如何使输出字段在 Tkinter 中不返回任何内容?
【发布时间】:2021-03-04 00:45:53
【问题描述】:

我正在使用 python 字典推进翻译应用程序项目。有输入字段、翻译按钮和输出字段。当条目与字典中的键不匹配时,会显示一个错误代码(“找不到单词”)。但是现在,当输入字段为空并且您单击按钮时,它仍然返回“找不到单词”,这有点愚蠢。当用户没有输入任何单词时,我如何不返回任何内容?谢谢。下面是代码:

from tkinter import *
import tkinter. messagebox
root=Tk()
root.geometry('250x250')
root.title("Meta' Translator")
root.configure(background="#35424a")

#Entry widget object
textin = StringVar()

#press ENTER key to activate translate button
def returnPressed(event):
  clk()

def clk():
    entered = ent.get().lower() #Get user input and convert to lowercase
    output.delete(0.0,END)
    try:
        textin = exlist[entered]
    except:
        textin = 'Word not found'
    output.insert(0.0,textin)

#heading
lab0=Label(root,text='Translate English Words to Meta\'',bg="#35424a",fg="silver",font=('none 11 
bold'))
lab0.place(x=0,y=2)

#Entry field
ent=Entry(root,width=15,font=('Times 18'),textvar=textin,bg='white')
ent.place(x=30,y=30)

#focus insertion point on entry field
ent.focus()

#Search button
but=Button(root,padx=1,pady=1,text='Translate',command=clk,bg='powder blue',font=('none 18 
bold'))
but.place(x=60,y=90)

#press ENTER key to activate Translate button
root.bind('<Return>', returnPressed)

#output field
output=Text(root,width=15,height=1,font=('Times 18'),fg="black")
output.place(x=30,y=170)

#prevent sizing of window
root.resizable(False,False) 

#Dictionary
exlist={
    "hat":"ɨ̀də̀m", 
    "hoe":"əsɔ́",
    "honey":"jú",
    "chest":"ɨgɔ̂",
    "eye":"ɨghə́",
    "ear":"ǝ̀tǒŋ",
    }

root.mainloop()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    你试过了吗:

    def clk():
        entered = ent.get().lower() #Get user input and convert to lowercase
        output.delete("0.0", END)
        if len(entered.strip(" ")) > 0:
            try:
                textin = exlist[entered]
            except:
                textin = "Word not found"
            output.insert("0.0", textin)
    

    基本上如果字符串的长度为 0,它就不会运行代码。

    【讨论】:

    • @DieudonneTambah 如果这是您正在寻找的答案,请考虑接受它,以免其他人浪费时间提出相同的解决方案
    • 如果用户只是输入了几个空格,仍然显示"Word not found"
    • @acw1668 感谢我修复它。我只需要添加.strip(" ")
    猜你喜欢
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多