【问题标题】:Python Tkinter Entry how to get width of the entryPython Tkinter Entry如何获取条目的宽度
【发布时间】:2016-02-08 21:55:02
【问题描述】:
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

所以我试图验证条目中的文本是否超过最大长度。我有两个长度不同的条目小部件。我想为每个使用不同长度的相同验证函数,这样当唯一的区别是最大长度时,我不需要创建两个验证函数。因此,我正在尝试使用小部件的宽度。但是,我找不到获取宽度的方法。

【问题讨论】:

  • !!!width of entry!!! 是指len(entry.get())?
  • 就是宽度内容的长度。我想要我在输入“width=15”时设置的值
  • 哦,小部件本身的宽度?那么entry['width']?
  • 哦,是的!谢谢。请将其发布为答案,以便我可以将其作为答案。
  • 看起来entry['width'] 有时会起作用,但如果宽度发生变化,则会给出错误的值。改用链接问题/答案中的方法;它更强大。

标签: python validation tkinter width tkinter-entry


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2011-10-16
    相关资源
    最近更新 更多