如何在文本输入框中输入文字时触发一个函数?
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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。