我想通过在tkinter中使用for循环来绘制8帧。第一个白色,然后是一个黑色(如棋盘(。
from tkinter import *
window = Tk()
window.title("pyChess")
window.geometry("523x523+250+0")
window.configure( background = 'brown')
x1 = 0
y1 = 0
x2 = 65
y2 = 65
j1 = 65
k1 = 0
j2 = 130
k2 = 65
for i in range(8):
i = Canvas(window, width=520, height=1000)
i.create_rectangle(x1, y1, x2, y2, fill="white")
x1 += 130
x2 += 130
i.create_rectangle(j1, k1, j2, k2, fill="black")
j1 += 130
j2 += 130
i.pack()
window.mainloop()
我写了此代码,但没有给我八帧。它只是打开了一个空白屏幕。我该怎么做?
您不需要更新每个Canvas
小部件的 x1,x2,j1,j1,j2 值。您要么在相同 canvas上绘制所有矩形(x1,x2,j1和j2的值需要更新的fow(,要么在每行上网格多个canvas窗口小部件。
尝试以下代码(仅针对第一行绘制矩形(:
from tkinter import *
window = Tk()
window.title("pyChess")
window.geometry("523x523+250+0")
window.configure( background = 'grey')
x1 = 0
y1 = 0
x2 = 65
y2 = 65
j1 = 65
k1 = 0
j2 = 130
k2 = 65
a = [0 , 1, 2, 3]
for x,i in enumerate(a):
i = Canvas(window, width=130, height=65)
i.create_rectangle(x1, y1, x2, y2, fill="white")
i.create_rectangle(j1, k1, j2, k2, fill="black")
i.grid(row = 0, column = x)
window.mainloop()