【发布时间】:2020-08-09 00:04:33
【问题描述】:
我正在尝试通过 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 的新手。其他示例解释了如何将条目限制为整数,所以我在这里有点困惑。 感谢您的帮助!
【问题讨论】:
-
在该小部件中输入的任何内容都是字符串。听起来您想验证字符串包含的字符。但要小心假设哪些字符是有效的:一些名称包含空格,hyphens, accents... 现在还有could be other characters too。
-
@Chris,请记住这一点!但是,数字呢?如果有人尝试输入数字,我如何在它旁边显示一条消息?
-
一般来说,我会假设一个人输入的任何东西都是有效的。世界上有很多名字,其中很多都不符合你对什么是有效名字的想法。 Elon Musk 给他的孩子取名为“X Æ A-12”,有一个child named Seven (or was it "7") in Seinfeld many years ago,当然还有Eleven ("11"?) in Stranger Things。验证实际上有验证规则的东西:电话号码(规范化它们)、电子邮件地址(虽然我建议只需要一个
@),... -
我有一个朋友的姓是两个字符,他经常有软件表格告诉他他的名字无效。猜猜什么是无效的?表格上的规则,而不是名称。
标签: python python-3.x validation tkinter widget