【问题标题】:How to restrict the maximum number a user can enter in an entry widget?如何限制用户可以在条目小部件中输入的最大数量?
【发布时间】: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


【解决方案1】:

在这种情况下,请尝试使用 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多