tkinter Label为什么总是都显示最后一个值呢?

Un = {0:0, 1:40, 2:250, 3:1200, 4:5700, 5:8640, 6:13000, 7:20000}


ui = tk.Tk()
ui.geometry('620x422')

oin = tk.IntVar()
oin.set(0)

for n in range(8):
    tp_UnCoin = Un[n]
    oin.set(tp_UnCoin)

    L2 = tk.Label(ui, textvariable=oin)
    L2.grid(row=n, column=2, sticky=tk.W)


ui.mainloop()

用for 创建8个Label.并给它们 值oin。

但每次这8个都只显示最后一个值20000。

为什么不能分别赋值呢?

阅读 2.8k
1 个回答

因为你只有一个IntVar就是oin,这个oin每次迭代的时候更新值,最后就是20000.
然后所有的Label都依赖这个IntVar

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题