如何在文本输入框中输入文字时触发一个函数?

编程语言 2026-07-09
import tkinter

pkg = tkinter.StringVar()

text_box = tkinter.Entry(root, textvariable=pkg)
text_box.pack()

if pkg != "":
    sel = pkg.get()
else:
    sel = "none selected"

selected = tkinter.Label(root, text=sel)
selected.pack()

这并不是完整的脚本,只包含相关部分。

我已经尽力让它工作,但现在到了一个不知道如何继续的阶段。

这主要是出于调试目的,看看我的脚本是否真的能工作,如果可能的话就保留。

我应该如何让它工作?

当前“text_box”显示为空,没有任何错误。

我希望在输入文本后,text_box能够更新,使其内容与用户在输入框中输入的内容保持一致。

解决方案

如果你想用文本字段中的内容来更新标签的文本,可以使用一个 write 事件,将其与字符串变量关联。

你可以使用 trace_add() 注册一个函数,使标签的文本显示为该变量的内容。这个注册的函数会在文本字段内容改变时被调用。

import tkinter as tk

def main():
    root = tk.Tk()

    entry_var = tk.StringVar()
    entry_box = tk.Entry(root, textvariable=entry_var)
    entry_box.pack()

    label = tk.Label(root)
    label.pack()

    entry_var.trace_add('write', lambda *_: label.config(text=entry_var.get()))

    root.mainloop()

if __name__ == '__main__':
    main()
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章