编辑1:我希望输入5个字符,并且它们必须是数字,怎么做?
你好吗?
我在tkinter GUI中有一些问题。我想要一个仅接受5位数字的Entry小部件,它只能是数字和5个字符,我尝试使用以下代码来实现,数字是可行的,但是大小却不能。请帮助
import tkinter as tk
class window2:
def __init__(self, master=None):
self.panel2 = tk.Frame(master)
self.panel2.grid()
self.max_len = 5
self.var = tk.StringVar()
self.var.trace_variable("w", self.validate)
vcmd = (master.register(self.validate), '%P')
self.text1 = tk.Entry(self.panel2, validate = 'key', validatecommand = vcmd)
self.text1.grid()
self.text1.focus()
def validate(self, P):
string = self.var.get()
if len(string) > self.max_len:
self.var.set(string[:self.max_len])
if str.isdigit(P) or P == "":
return True
else:
return False
root1 = tk.Tk()
window2(root1)
root1.mainloop()