无法理解如何在 tkinter 中验证条目小部件
Can't understand how to validate entry widget in tkinter
我正在尝试以交互方式验证 tkinter 中的条目小部件,以仅允许用户输入字母表中的字符。
我已经阅读了一个非常受欢迎的主题 (Interactively validating Entry widget content in tkinter),并从中试图找出我的解决方案,但我似乎无法让它工作。
在那个线程的评论中是一个只允许数字的解决方案,我已经将它用于我的程序的一个区域并且它工作得很好!代码在这里:
from tkinter import *
root = Tk()
def testVal(inStr,i,acttyp):
ind=int(i)
if acttyp == '1': #insert
if not inStr[ind].isdigit():
return False
return True
entry = Entry(root, validate="key")
entry['validatecommand'] = (entry.register(testVal),'%P','%i','%d')
entry.pack()
root.mainloop()
我想要这样的解决方案,唯一的变化是它接受字母而不是数字。任何帮助表示赞赏
这是您正在寻找的解决方案:
def testVal(inStr,i,acttyp):
ind=int(i)
if acttyp == '1': #insert
if not inStr[ind].isalpha():
return False
return True
这里还有一些可能有用的东西:
.isdigit()
测试字符串是否为整数
.isalpha()
测试字符串是否只包含字母
.isalnum()
测试字符串是否只包含字母和数字
.isupper()
大写测试
.islower()
小写测试
对于其他数据类型,您可以使用 isinstance()
,例如 isinstance("34.5", float)
将 return True
我正在尝试以交互方式验证 tkinter 中的条目小部件,以仅允许用户输入字母表中的字符。 我已经阅读了一个非常受欢迎的主题 (Interactively validating Entry widget content in tkinter),并从中试图找出我的解决方案,但我似乎无法让它工作。 在那个线程的评论中是一个只允许数字的解决方案,我已经将它用于我的程序的一个区域并且它工作得很好!代码在这里:
from tkinter import *
root = Tk()
def testVal(inStr,i,acttyp):
ind=int(i)
if acttyp == '1': #insert
if not inStr[ind].isdigit():
return False
return True
entry = Entry(root, validate="key")
entry['validatecommand'] = (entry.register(testVal),'%P','%i','%d')
entry.pack()
root.mainloop()
我想要这样的解决方案,唯一的变化是它接受字母而不是数字。任何帮助表示赞赏
这是您正在寻找的解决方案:
def testVal(inStr,i,acttyp):
ind=int(i)
if acttyp == '1': #insert
if not inStr[ind].isalpha():
return False
return True
这里还有一些可能有用的东西:
.isdigit()
测试字符串是否为整数.isalpha()
测试字符串是否只包含字母.isalnum()
测试字符串是否只包含字母和数字.isupper()
大写测试.islower()
小写测试
对于其他数据类型,您可以使用 isinstance()
,例如 isinstance("34.5", float)
将 return True