如何验证 Tkinter 条目小部件只接受字符串?
How to validate a Tkinter entry widget to only accept string?
我正在尝试通过 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 的新手。其他示例解释了如何将条目限制为整数,所以我在这里有点困惑。
感谢您的帮助!
您可以使用列表来存储要接受的信件。
然后用列表中的元素检查输入的每个字母。
如果在列表中的输入中找不到任何字符(可接受的字符),则它是无效输入。
# 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 模块,即 built-in 模块。但是我对RegEx不太熟悉
下面是一个小片段,可以让您更好地理解
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()
returns False
,如果是,则显示 messagebox
表示只允许使用字母。就这么简单。
如果有任何错误请告诉我。快乐编码
Here更多关于isalpha()
方法
干杯
我正在尝试通过 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 的新手。其他示例解释了如何将条目限制为整数,所以我在这里有点困惑。 感谢您的帮助!
您可以使用列表来存储要接受的信件。 然后用列表中的元素检查输入的每个字母。 如果在列表中的输入中找不到任何字符(可接受的字符),则它是无效输入。
# 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 模块,即 built-in 模块。但是我对RegEx不太熟悉
下面是一个小片段,可以让您更好地理解
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()
returns False
,如果是,则显示 messagebox
表示只允许使用字母。就这么简单。
如果有任何错误请告诉我。快乐编码
Here更多关于isalpha()
方法
干杯