乙方al 发表于 2022-8-21 14:01:23

tkinter Entry组件中的问题

本帖最后由 乙方al 于 2022-8-21 14:01 编辑

求助!
为什么当Entry的validate参数为'key',validatecommand返回False的时候,输入框就输入不了内容?
就比如下面这段代码,当在输入框中输入'aa'后,就输不动了,输入框一直显示'aa'
from tkinter import *

root = Tk()

def test():
    if e.get() == 'aa':
      return False
    else:
      return True

e = Entry(root, validate="key", validatecommand=test)
e.pack(padx=10, pady=10)


mainloop()


ba21 发表于 2022-8-21 21:46:51

validatecommand=test
test 返回false说明你输入不合法,此时当然不能继续操作。
当前提问,我能告诉你的是让test返回true说明你输入合法,可以继续操作
test
      return True

qq1151985918 发表于 2022-8-21 22:59:52

本帖最后由 qq1151985918 于 2022-8-21 23:07 编辑

from tkinter import *

root = Tk()

def test():
    if e.get() == 'aa':
      e.delete(0, "end")
      e.config(validate="key")
      return False
    else:
      return True

e = Entry(root, validate="key", validatecommand=test)
e.pack(padx=10, pady=10)


mainloop()

乙方al 发表于 2022-8-22 19:32:44

ba21 发表于 2022-8-21 21:46
validatecommand=test
test 返回false说明你输入不合法,此时当然不能继续操作。
当前提问,我能告诉你 ...

好吧!昨天我往后看了一下书,小甲鱼在书已经解释过了
可是帖子正在审核,原本想删了,可是不知道怎么删,最后到晚上才审核通过{:10_291:}
不过也同样感谢!

乙方al 发表于 2022-8-25 16:46:09

{:10_244:}
页: [1]
查看完整版本: tkinter Entry组件中的问题