Python tkInter入门乐趣

发布于 2021-01-29 17:43:00

使用Python-tkInter-Entry小部件-当我使用validatecommand(如下)时,检查第一次在字符串>
Max时发生,但是当我继续输入文本时检查步骤-第一次之后没有删除或插入吗?有什么建议吗?(除了不通过python构建桌面应用之外)


#!/usr/bin/env python
from Tkinter import *

class MyEntry(Entry):

    def __init__(self, master, maxchars):
        Entry.__init__(self, master, validate = "key",    validatecommand=self.validatecommand)
        self.MAX = maxchars

    def validatecommand(self, *args):
        if len(self.get()) >= self.MAX:
            self.delete(0,3)
            self.insert(0, "no")
        return True

if __name__ == '__main__':
    tkmain = Tk()
    e = MyEntry(tkmain, 5)
    e.grid()
    tkmain.mainloop()
关注者
0
被浏览
141
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    来自Tk男人

    当您从validateCommand或invalidCommand中编辑条目窗口小部件时,validate选项还将自身设置为none。此类版本将覆盖正在验证的版本。如果您希望在验证期间编辑条目窗口小部件(例如将其设置为{}),并且仍然设置了validate选项,则应包括以下命令

    空闲后{%W config -validate%v}

    不知道如何将其转换为python。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看