【发布时间】:2021-09-23 11:09:08
【问题描述】:
我有一个输入小部件,我希望用户只能输入 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 吗?
标签: python python-3.x tkinter