如何在tkinter按钮中调用self?[重复]

问题描述 投票:0回答:1

我正在用tkinter创建一种基于按钮的绘画,所以我想给每个按钮一个命令来绘画自己。

     for i in range(xc*yc):

             grid.append(Button(wn,text="    ",bg="white",padx=5,pady=5))

             grid[-1].config(command = paint(i))  <--????

             grid[-1].place(x= (i%xc) * 30 +60, y = (math.floor(i/xc) * 30)+30)

问题是每一个按钮都会收到 "paint(i) "命令,其最终值为i,所以每次它给最后一个按钮上色的时候

python button tkinter command self
1个回答
-1
投票

使用root.update()方法可以预见性地更新UI,所以你可以用它来查看for循环的每一次迭代,如果你在for循环中调用它的话。


-1
投票

也许是这样的

for i in range(xc*yc):
    button = Button(wn,text="    ",bg="white",padx=5,pady=5)
    grid.append(button)
    button.config(command = paint(i, button)) # note the additional reference to button here!
    button.place(x= (i%xc) * 30 +60, y = (math.floor(i/xc) * 30)+30)

会有帮助的。

© www.soinside.com 2019 - 2024. All rights reserved.