如何在Tkinter中交互式验证Entry小部件的内容?


验证内容是任何功能应用程序的必要部分,在这些应用程序中,我们只允许处理所需数据。Tkinter中的Entry小部件用于显示单行文本输入。但是,我们可以验证Entry小部件以仅接受数字或字母。

让我们首先创建一个仅接受数字输入的Entry小部件。因此,首先,我们将创建一个Entry小部件,并使用**register(callback)**函数,我们将调用验证Entry小部件,该小部件在每次按键时都会进行验证。它返回一个可以用来调用函数的字符串。然后,调用回调函数来验证entry小部件,如下所示:

entrywidget.config(validate="key", validatecommand=(callback,'%d'))

**Validatecommand**支持其他值,例如%d、%i、%W、%P、%s、%v等。

示例

#Import the required library
from tkinter import *
#Create an instance of tkinter frame or window
win = Tk()
def callback(input):
   if input.isdigit():
      print(input)
      return True
   elif input=="":
      print(input)
      return True
   else:
      print(input)
      return False
#Create an entry widget
entry= Entry(win)
fun= win.register(callback)
entry.config(validate="key", validatecommand=(fun, '%P'))
entry.pack()
win.mainloop()

输出

运行以上代码将显示一个包含Entry小部件的窗口,该小部件仅接受数字并在控制台上打印按键。

在输出屏幕上,输入任何字符。您会发现您只能输入数字,因此Entry小部件已通过验证。

更新于:2021年4月16日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告