如何验证Tkinter条目小部件只接受字符串



我正在尝试通过Tkinter进行操作,这是我的代码的一部分:

FirstName = Label(canvas, text="First Name")
FirstName.configure(width=30, bg="white", fg="black", border=10)
FirstName = canvas.create_window(330, 130, anchor = CENTER, window=FirstName)
FName_Entry = Entry(canvas)
canvas.create_window(850, 145, window=FName_Entry, height=35, width=300)

正如您所看到的,这是一个用于用户输入名字的输入小部件。我如何验证它只接受字符串(字母(,如果他们试图输入整数、符号或基本上不是字母的任何东西,它应该在小部件的侧面显示一条消息,敦促用户输入有效的名称。

我试着在网上查看,但他们中的大多数人都在使用课程,我还不习惯上课,而且我是Tkinter的新手。其他例子解释了如何将条目限制为整数,所以我在这里有点困惑。谢谢你的帮助!

这里有一个小片段,可以让您更好地理解

from tkinter import * 
from tkinter import messagebox
root = Tk()
def check():
sel = e.get()

if not sel.isalpha():
messagebox.showerror('Only letters','Only letters are allowed!')
e = Entry(root)
e.pack(pady=10)
b = Button(root,text='Click Me',command=check)
b.pack(padx=10,pady=10)
root.mainloop()

在这里,我们检查sel.isalpha()是否返回False,如果返回,则显示一个messagebox,表示只允许使用字母。就这么简单。

如果有任何错误,请告诉我。快乐编码

以下是关于isalpha()方法的更多信息

干杯

您可以使用列表来存储要接受的信件。然后用列表中的元素检查输入的每个字母。如果在列表中的输入中未找到任何字符(可接受字符(,则该字符为无效输入。

# acceptable character list
accepted_characters = ['a', 'b', 'c',.....'z', 'A', 'B', 'C',...'Z']
# input from the tkinter entry widget
inp = "hello"
for i in inp:
if i not in accepted_characters:
print('Invalid data.')

另一种方法是使用RegEx模块,它是内置模块。但我对RegEx不太熟悉。

相关内容

  • 没有找到相关文章

最新更新