我只需要数字并在数字上签名。被打印在我的输入字段中。但是在运行此代码后,我只能输入数字或只能输入符号“。”(我尝试输入“ 2.45”,但是要点不是在“ 2”之后输入。如果我尝试输入“ .45”,则不会输入“ 45”在“。”之后键入)。我该如何解决这个问题?
from tkinter import *
root = Tk()
entry = Entry(width=10)
entry.pack()
def correct(inp):
if inp.isdigit():
return True
elif inp == ".":
return True
elif inp == "":
return True
else:
return False
reg = root.register(correct)
entry.config(validate='key', validatecommand = (reg, '%P'))
root.mainloop()
答案 0 :(得分:0)
您的验证功能没有写错……我认为这将是一种更轻松的方法来完成您想要的事情:
import tkinter as tk
root = tk.Tk()
entry = tk.Entry(width=10)
entry.pack()
def correct(inp):
""" Determine if inp value is a valid floating point number. """
try:
float(inp)
except ValueError:
return inp == '' # Consider empty string valid.
else:
return True
reg = root.register(correct)
entry.config(validate='key', validatecommand=(reg, '%P'))
root.mainloop()