首页 > 解决方案 > 如何在 TKinter 的输入框中添加存在检查验证?

问题描述

首先,我知道这个问题已经被问过了。但是,它的答案都没有真正回答这个问题。

我正在创建一个允许将详细信息存储在数据库中的程序。也可以使用特定数据(在本例中为名字、姓氏、门牌号和邮政编码)搜索这些详细信息。因此,为了搜索详细信息,需要存在此数据。

我有允许保存输入到数据库的数据的输入框,但我希望它不会添加详细信息,除非输入上述数据。

在伪代码中,我希望程序的功能类似于:

if Firstname or Surname or House or Postcode is not present:
    output "Please enter required information"

目前,这是我输入框的代码:

Label(frame1, text = "Postcode: ", font = ("arial 11"), fg = "#b83dba").grid(row = 7, column = 0, sticky = W)
pcVar = StringVar()
pc = Entry(frame1, textvariable = pcVar, bg = "silver")
pc.grid(row = 7, column = 1, sticky = W)

我最好喜欢这样,当没有输入所需的详细信息时,我可以使用代码:messagebox.showerror("Error","Required fields are missing")

任何帮助将不胜感激。

标签: pythonvalidationtkintertkinter-entry

解决方案


没关系,我刚刚发现它,所以我会发布我是如何做到的,以防其他人想知道。如果使用entryvar = Entry(frame1, textvariable = testVar)作为示例,在实际保存详细信息的代码中,您将包括:

Q = entryvar.get() #Returns the entry's current text as a string.

if Q == "":
    messagebox.showerror("Error","Missing required fields") #Opens a messagebox informing the user that the details were not saved and that the data needs to be entered

else:
    conn.execute('''INSERT INTO TABLE (DATA)
        VALUES(?)''', (dataNew);
    conn.commit()

    messagebox.showinfo("Success","Details Saved") #Opens a messagebox informing the user that the details have saved

为我的 SQL 道歉,因为我对该语言不是很有信心。


推荐阅读