python - 删除内容后如何设置 tkinter 条目验证

标签 python python-3.x tkinter

我在这里有几行代码来验证我的 entry 小部件,该小部件工作正常,但在删除内容后并希望将验证设置回来时,它不起作用。删除后,我可以输入text 我不希望该条目被接受。

from tkinter import *


def MoneyValidation(S):
    if S in ['0', '1', '2', '3', '4', '5']:
        return True
    root.bell()
    return False


def delete():
    vcmd_money2 = (root.register(MoneyValidation), '%S')
    e.config(invcmd="keys", vcmd=vcmd_money2)
    e.delete(0, END)
    e.delete(0, END)

    vcmd_money = (root.register(MoneyValidation), '%S')
    e.config(validate="key", vcmd=vcmd_money)




root = Tk()

vcmd_money = (root.register(MoneyValidation), '%S')
e = Entry(root, validate="key", vcmd=vcmd_money)
e.pack()

b = Button(text="DELETE", command=delete)
b.pack()

root.mainloop()

最佳答案

我认为你让这种方式变得不必要的困难。只需关闭验证,删除文本并再次打开验证即可:

def delete():
    e.config(validate="none")
    e.delete(0, END)
    e.config(validate="key")

关于python - 删除内容后如何设置 tkinter 条目验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50702674/

相关文章:

python - Tkinter 获取图像以跟随光标并进行先前的移动

python - 如何在 jinja 模板中列出可用参数

python - 什么是 Tkinter 的 tkapp?

python - tkinter 文本小部件的自适应调整大小

python - 在 Python 中用另一个字符串的第 n 个字符创建一个字符串

python - PySide2 在设计师创建的小部件上绘制

python - 尝试从华为调制解调器读取消息时出现错误 125002

python - 将 pandas 时间序列重新采样到预定义的网格

python - Telegram API 文件上传

python 对象组合和多处理