考虑以下代码:
import tkinter as tk
FONT="Arial 20 bold"
app = tk.Tk()
tk.Entry(app,text="hi", font=FONT).pack()
tk.Entry(app,text="hi", font=FONT).pack()
app.mainloop()
此动画显示,文本内容彼此连接:更改一个条目会自动更新另一个。请注意,文本选项未绑定到任何stringVar对象,而是绑定到字符串文字。
奇怪的是,如果将文本选项初始化为与众不同的拼写字符串,例如“ hi and Hi”,则输入内容将变得无关。
这是预期的行为吗?
对于三个条目,具有相同文本的两个条目也被链接:
import tkinter as tk
FONT="Arial 20 bold"
app = tk.Tk()
tk.Entry(app, text="hi", font=FONT).pack()
tk.Entry(app, text="there", font=FONT).pack()
tk.Entry(app, text="hi", font=FONT).pack()
app.mainloop()
即使将这些条目分配给不同的变量:
import tkinter as tk
FONT="Arial 20 bold"
app = tk.Tk()
a = tk.Entry(app, text="hi", font=FONT).pack()
b = tk.Entry(app, text="there", font=FONT).pack()
c = tk.Entry(app, text="hi", font=FONT).pack()
app.mainloop()
答案 0 :(得分:4)
问题实际上出在text
参数上。通过传递text
,您将创建textvariable
小部件的Entry
:
import tkinter as tk
FONT="Arial 20 bold"
app = tk.Tk()
a = tk.Entry(app, text="hi", font=FONT)
b = tk.Entry(app, text="there", font=FONT)
c = tk.Entry(app, text="hi", font=FONT)
for i in (a,b,c):
i.pack()
print (i["textvariable"])
app.mainloop()
要解决此问题-只需不传递text
作为参数。我不认为您仍然需要它。