Python Tkinter条目如何获取条目的宽度 vcmd=(self.register(self.validate\u entry\u len),'%P','%W') ip_entry=tk.entry(ip_帧,宽度=15,validate='key

Python Tkinter条目如何获取条目的宽度 vcmd=(self.register(self.validate\u entry\u len),'%P','%W') ip_entry=tk.entry(ip_帧,宽度=15,validate='key,python,validation,tkinter,width,tkinter-entry,Python,Validation,Tkinter,Width,Tkinter Entry,Python Tkinter条目如何获取条目的宽度 vcmd=(self.register(self.validate\u entry\u len),'%P','%W') ip_entry=tk.entry(ip_帧,宽度=15,validate='key',vcmd=vcmd) port_entry=tk.entry(port_帧,宽度=5,validate='key',vcmd=vcmd) def验证输入(自身、P、W): entry=self.master.nametWidget(W) 如

Python Tkinter条目如何获取条目的宽度
vcmd=(self.register(self.validate\u entry\u len),'%P','%W')
ip_entry=tk.entry(ip_帧,宽度=15,validate='key',vcmd=vcmd)
port_entry=tk.entry(port_帧,宽度=5,validate='key',vcmd=vcmd)
def验证输入(自身、P、W):
entry=self.master.nametWidget(W)

如果len(P)

您可以使用

Entry['width']
访问
Entry
小部件的字符宽度。请记住,如果小部件被修改,这可能无法可靠地更新。

By
!!!入口宽度
你的意思是
len(entry.get())
?这是宽度内容的长度。我想要在输入'width=15'时设置的值哦,小部件本身的宽度?所以
条目['width']
?哦,是的!谢谢请将其作为答案发布,以便我可以将其作为答案。看起来
条目['width']
有时会起作用,但如果宽度发生变化,请给出错误的值。改为使用链接问题/答案中的方法;它更健壮。
vcmd = (self.register(self.validate_entry_len), '%P', '%W')

ip_entry = tk.Entry(ip_frame, width=15, validate='key', vcmd=vcmd)
port_entry = tk.Entry(port_frame, width=5, validate='key', vcmd=vcmd)

def validate_entry_len(self, P, W):
    entry = self.master.nametowidget(W)
    if len(P) <= !!!width of entry!!!:
        return True

    self.bell()
    return False