tkinter这样怎么不能分别赋值?

2021-02-15 14:01发布

问题:

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

为什么不能分别赋值呢?

回答1:

问题出在oin = tk.IntVar()上 这个是随动的,你最后的oin值是20000,所以都变成20000,把oin = tk.IntVar()
oin.set(0)这两句移入for循环就可以了