如何从Entry小部件中获取Input并将其设置为标签小部件中的文本。
我尝试了以下内容:
vet
说实话,我认为它不会起作用,但这是我能想到的。
答案 0 :(得分:2)
如果您希望标签具有Entry小部件中输入的内容,您可以让它们共享textvariable
属性的相同值:
theVariable = tk.StringVar()
tk.Entry(..., textvariable=theVariable)
tk.Label(..., textvariable=theVariable)
有了它,你不必做任何其他事情 - 没有回调,没有绑定,没有按钮。无论何时输入条目小部件,标签都会自动更新。
答案 1 :(得分:1)
一个例子如下:
def callback(*args):
lbl = Label(root,text=e.get(), width=20).grid(row=1, column=1)
myLabel = Label(window, text='Reflecting Entry text here...', width=20)
myLabel.grid(row=1, column=1)
e = StringVar()
myEntry = Entry(root, width = 20, textvariable = e)
myEntry.grid(row=1, column=2)
e.set("Type Something here..")
e.trace("w", callback)
无论您在Label
窗口小部件中输入什么内容,都会立即更新Entry
的文字。
答案 2 :(得分:0)
我在每个按键事件中绑定了一个回调函数。在回调函数内部,标签的当前内容将被最后一个按键附加。
唯一的问题是当您按下退格键时,还会打印退格字符并且尚未执行删除操作。另一个退格键将删除打印后退字符前的字符。等等。
因此,从条目小部件中删除所有内容会在那里留下退格字符。我会把它留给你。
另一种解决方案是使用按钮,然后每次按下按钮都会更新您的标签。但我认为你想要的是每次按下一个键时自动更新。
因此,我创建了一个满足您问题需求的脚本。
以下是工作脚本:
#!/usr/bin/env python3
from tkinter import *
from tkinter import ttk
window = Tk()
entry_1 = Entry(window, width=45)
entry_1.grid(column = 0, row = 0)
# appends current content of l_one with the new pressed key value
def callback(event):
l_one.config(text=entry_1.get() + event.char)
# binds callback to every keypress
entry_1.bind("<Key>", callback)
l_one = Label(window)
l_one.grid(column = 0, row = 1)
window.mainloop()
祝你好运!