python_tkinter_Entry限制输入数字小数点,break很关键
import tkinter as tk
def f(a):
l =list(e1.get())
for i in range(len(l)-1,-1,-1):
if not(48 <= ord(l[i]) <= 57 or ord(l[i]) == 46):
e1.delete(i)
elif ord(l[i]) == 46:
for j in range(i-1,-1,-1):
if ord(l[j]) == 46:
e1.delete(i)
break # here break is very significant
window=tk.Tk()
window.title('input control')
window.geometry('200x100+1000+800')
e1=tk.Entry(window,justify='center', width=8, font=('Arial', 14))
e1.focus()
e1.bind('<KeyRelease>', f)
e1.pack()
label=tk.Label(window,text='只能输入数字和一个小数点')
label.pack()
window.mainloop()
其中的 break 非常关键
#2020年2月18日 突然发现python的内置函数 isinstance() 似乎能更方便哈,isinstance (a,(float,int))