如果我在 pos1 上有這個 ENTRY label1,我如何更新并“實時”顯示我在 position2 的其他標簽 2 上寫的文本?
label1 = Entry(root, font=('aria label', 15), fg='black')
label1.insert(0, 'enter your text here')
label1_window = my_canvas.create_window(10, 40, window=entry)
label2 = how to update and show in real time what user write on label1
uj5u.com熱心網友回復:
如果條目和標簽使用相同StringVar的textvariable選項,標簽將自動顯示條目中的任何內容。無論是輸入條目還是以編程方式修改條目,都會發生這種情況。
import tkinter as tk
root = tk.Tk()
var = tk.StringVar()
canvas = tk.Canvas(root, width=400, height=200, background="bisque")
entry = tk.Entry(root, textvariable=var)
label = tk.Label(root, textvariable=var)
canvas.pack(side="top", fill="both", expand=True)
label.pack(side="bottom", fill="x")
canvas.create_window(10, 40, window=entry, anchor="w")
root.mainloop()

uj5u.com熱心網友回復:
嘗試中的問題:變數名稱不清楚,因為您正在創建一個Entry組件,然后將其分配給一個名為的變數label1,這可能會造成混淆。
提示:您可以執行以下操作之一將標簽系結到條目,以便更改條目中的文本會導致標簽中的文本發生更改:
- 使用共享變數
- 實作一個合適的回呼函式。例如,您可以在每次
KeyRelease事件發生時更新標簽。
解決方案 1 - 共享變數:以下是使用共享變數的示例解決方案:
import tkinter as tk
from tkinter import *
root = tk.Tk()
root.title('Example')
root.geometry("300x200 10 10")
user_var = StringVar(value='Enter text here')
user_entry = Entry(root, textvariable=user_var, font=('aria label', 15), fg='black')
user_entry.pack()
echo_label = Label(root, textvariable=user_var)
echo_label.pack()
root.mainloop()
解決方案 2 - 回呼函式:以下是使用合適的回呼函式的示例解決方案。如果您想做更多事情,這很有用:
import tkinter as tk
from tkinter import *
root = tk.Tk()
root.title('Example')
root.geometry("300x200 10 10")
def user_entry_changed(e):
echo_label.config({'text': user_entry.get()})
user_entry = Entry(root, font=('aria label', 15), fg='black')
user_entry.insert(0, 'Enter your text here')
user_entry.bind("<KeyRelease>", user_entry_changed)
user_entry.pack()
echo_label = Label(root, text='<Will echo here>')
echo_label.pack()
root.mainloop()
輸出:這是在'abc'輸入欄位中輸入后的結果輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504272.html
