【问题标题】:How can I make an live limit count for entry widget如何为条目小部件设置实时限制计数
【发布时间】:2018-12-24 05:28:33
【问题描述】:

我必须为我的密码输入字段创建一个实时限制计数器。我需要一个实时限制计数器来计算输入的文本数量。

我使用按钮来查找输入字段的文本计数,但我希望它能够生效。

我的代码

from tkinter import *

Root=Tk()
Entry1=Entry(Root)
length=len(Entry1.get())
Labellen=Label(Root,text= 
(length,"/10"),bg="black",fg="green")

def check():
    if len(Entry1.get())>10:
        length=len(Entry1.get())
        Labellen.configure(text=("you have reached maximum limit ", length , " /10"),fg="red")    
    else:
        length=len(Entry1.get())
        Labellen.config(text=(length,"/10"))

Entry1.configure(font=('MS Serif',10),bg="light 
blue",relief="groove",bd=15,
insertbackground="red",insertborderwidth=15)
Entry1.pack()

Labellen.pack()

Btn=Button(Root,text="check limit",command=check)
Btn.pack()

Root.mainloop()

【问题讨论】:

    标签: python tkinter tkinter-entry


    【解决方案1】:

    您可以使用 tkinter Entryvalidatecommand 参数来实现。更多详情,请查看docs

    import tkinter as tk
    
    root = tk.Tk()
    
    def check(why):
        ctr.set(len(why))
        return True
    
    count = root.register(check)
    entry = tk.Entry(root, validate="key", validatecommand=(count, '%P'))
    entry.grid(row=0, column=0, padx=10, pady=5)
    entry.focus_set()
    
    ctr = tk.StringVar()
    ctr.set(0)
    tk.Label(root, text='Counter: ').grid()
    counter = tk.Label(root, textvariable=ctr, bg='white')
    counter.grid()
    
    root.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      相关资源
      最近更新 更多