Entry / TextBox的TextChanged / KeyDown

时间:2014-08-31 11:03:17

标签: tkinter python-3.4 textchanged tkinter-entry

我根据this post编写了以下脚本:

from tkinter import *

class MainWindow(Tk):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.geometry("500x300+433+234")
        self.title("Hallo")

        self.__tbIn_Txt = StringVar(None, "Hallo")
        self.__tbIn = Entry(self, textvariable = self.__tbIn_Txt, validate = "all")
        self.__tbIn.config(validatecommand = (self.register(self.__check),))
        self.__tbIn.pack()

    def __check(self):
        print("Check")

    def show(self):
        self.mainloop()

wMain = MainWindow()
wMain.show()

__check仅在我第一次单击文本框/条目时触发,但从不再触发。我想实现KeyDown / KeyUp / KeyPress / TextChanged行为,但似乎我的脚本导致OnClick事件。如何在条目值的每次更改时调用文本框__check

我在Windows 7 64位上运行Python 3.4(64位)。

1 个答案:

答案 0 :(得分:2)

validatecommand必须返回True或False,否则tkinter将取消进一步的验证。