python 自动输入 检查输出 竞赛_给tk.Entry增加输入自动检查功能

在python中用tkinter模块制作GUI界面,对于一般的输入,都会选择使用tk.Entry控件。对于输入检查,常见思路是:用户输入,点击确定,然后程序开始做检查。我们还有另外一个思路,即在tk.Entry控件中直接做输入检查,用户一边输入一边检查,用户输入完成,检查就做完!这种界面效果,个人认为更优雅。

tk.Entry控件的作用,就是承接用户的输入。用户输入,一定要通过键盘。因此,实现输入自动检查功能,我们可以让tk.Entry控件去响应按键的KeyRelease事件,用户每输入一个字符,都会产生一个KeyRelease事件,这时就可以在响应事件的函数中检查用户的输入,如果有错,进行相应的操作,比如背景颜色的改变作为提示,或者在log窗口提示,或者直接去掉这个错误的输入等等。

下面的python示例代码,实现了一个tk.Entry控件对输入的自动检查,只允许输入10个字符,一旦发现输入超长,自动将超长的部分删除:

import tkinter as tk

def _number_check(event):

data = num.get().strip()

if len(data) <= 10: return

num.set(data[:10])

root = tk.Tk()

num = tk.StringVar()

numEntry = tk.Entry(root, textvariable=num)

numEntry.bind('', _number_check)

numEntry.pack()

root.mainloop()

tkinter控件通过bind函数绑定事件,对应的操作函数,比如要有1个输入参数,一般命令为event,这个event对象内含有很多可以利用的信息,不过本文示例没有使用。

这段代码可以直接运行,效果就是界面只有一个tk.Entry框,输入字符,一旦长度超过10,再输入时,你会看到你输入的超长字符,闪了一下就消失了!

tk.Entry通过这种方式实现输入自动检查,有个细节,即如果用户连续按着键盘的某个按键不放,也是有效的,每一个输入都会产生一个KeyRelease事件。您可以根据自己的需要,用这种方法,编写各种对输入的检查功能。python官方首推的GUI库tkinter,功能是很强大的。

-- EOF --

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值