如何限制用户在条目小部件中可以输入的最大数量?



我有一个条目小部件,我希望用户只能输入0到100之间的数字。我弄清楚了如何只让用户输入数字,但现在我不知道如何跟踪小部件中输入的内容,并确保它不超过100....

from tkinter import *

class Prox(Entry):
'''Entry widget that only accepts digits'''
def __init__(self, master=None, **kwargs):
self.var = StringVar(master)
self.var.trace('w', self.validate)
Entry.__init__(self, master, textvariable=self.var, **kwargs)
self.get, self.set = self.var.get, self.var.set
def validate(self, *args):
value = self.get()
if not value.isdigit():
self.set(''.join(x for x in value if x.isdigit()))
def character_limit(entry_text):
if len(entry_text.get()) > 0:
entry_text.set(entry_text.get()[-1])
window = Tk()
percEntry = Prox(window)
percEntry.insert(0, '0')
percEntry.grid(row=0, column=0)
window.mainloop()

在这种情况下,尝试使用SpinBox而不是Entry Widget。

例如:

from tkinter import *  

top = Tk()  

top.geometry("200x200")  
spin = Spinbox(top, from_= 0, to = 25)  

spin.pack()  
top.mainloop()  

要获取SpinBox当前值,只需执行以下命令:spin.get()

最新更新