我有一個按鈕陣列,當我按下按鈕時,按鈕在陣列中的位置被列印,但顏色沒有改變。而是更改了相應列底部的按鈕顏色。在這里,我按下0, 0
了1, 0
& 2, 4
,可以看出每列底部的按鈕都發生了變化,但除了2, 4
.
怎么來的?
編碼,
from tkinter import *
def init():
print("Started")
class App:
def __init__(self, master):
self.text = [[None]*50]*3
self.buttons = [[None]*50]*3
frame = Frame(master)
#frame.pack()
for i in range(3):
for j in range(50):
self.buttons[i][j] = Button(root, command = lambda i=i, j=j : self.led(i, j))
self.buttons[i][j].config(width = 2, height = 3)
self.buttons[i][j].grid(row = i, column = j)
def led(self, i, j):
print(i, j)
self.buttons[i][j].config(bg = 'blue')
init()
root = Tk()
app = App(root)
root.mainloop()
uj5u.com熱心網友回復:
當您運行線路時
self.text = [[None]*50]*3
self.buttons = [[None]*50]*3
您的串列包含same
陣列的 3 個實體。使用
[[None]*50 for _ in range(3)]
應該創建一個包含 3 個不同的串列實體的串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512047.html