我目前正在使用Tkinter类在python中创建一个国际象棋游戏。我正在制作棋盘。以下是我正在做的一些示例代码:
board_canvas = tkinter.Canvas(mainWindow, borderwidth=1)
board_canvas.grid(row=1, column=0, sticky='ew', columnspan=8, rowspan=8)
x = 100
y = 100
a1 = board_canvas.create_rectangle(0, 0, x, y, fill='black')
a2 = board_canvas.create_rectangle(0, 0, x, y, fill='white')
a3 = board_canvas.create_rectangle(0, 0, x, y, fill='black')
我的问题是如何对我的画布对象进行网格化,这样它们就不会只是坐在彼此之上。或者,如果这不起作用,我可以在棋盘上布置什么更好的方法?
答案 0 :(得分:1)
每个矩形有四个坐标(x0,y0,x1,y1:(x0,y0)是左上角,(x1,y1)是右下角以外的像素。所以你只需要增加每个方格的左上角和右下角的x坐标。
import tkinter
mainWindow =tkinter.Tk()
board_canvas = tkinter.Canvas(mainWindow, borderwidth=1)
board_canvas.grid(row=1, column=0, sticky='ew', columnspan=8, rowspan=8)
x = 100
y = 100
a1 = board_canvas.create_rectangle(0, 0, x, y, fill='black')
a2 = board_canvas.create_rectangle(100, 0, 200, y, fill='white')
a3 = board_canvas.create_rectangle(200, 0, 300, y, fill='black')
mainWindow.mainloop()
当然,对于整个棋盘,您可能希望使用循环增加值。