在我的Tkinter应用程序中,我有一个条目小部件,用户应该用数字填充它。在
是否可以将输入值限制为int
、float
和{
具体来说,用户应该只输入一个数字:
float
,int
,long
。在.
(一个数字无论如何没有2个点)。在import tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
vcmd = (self.root.register(self.on_validate), '%d', '%i', '%s', '%S')
self.entry = tk.Entry(self.root, validate="key", validatecommand=vcmd)
self.entry.pack()
self.root.mainloop()
def on_validate(self, d, i, s, S,):
if S == "-" and s.count('-') != 1 and int(i) == 0:
return True
if d == "0":
return True
try:
return int(S) >= 0 and int(S) <= 9
except:
if S == "." and s.count('.') != 1:
return True
return False
app = App()
不能限制数据类型,但可以限制允许的字符。查看问题Python/Tkinter: Interactively validating Entry widget content的答案
相关问题 更多 >
编程相关推荐