I am making a chess program and I am trying to use the grid method to make the board in the draw board function. but the layout is misbehaving it currently on shows the first two rows but are large gap is between the rows (I assume the other 6 are outputted below the bottom of the window) Any ideas? Thanks in advance
import tkinter as tk#imports the gui
class Layout(tk.Tk):
colours = ["#563a12", "#9f9362"]#square colours dark then light
def __init__(self, n=8):
super().__init__()
self.n = n
self.middleframe = tk.Frame(self, )
self.middleframe.grid(row=0, column=3, rowspan=8, columnspan=8)
self.canvas = tk.Canvas(self, width=1200, height=768, )
self.canvas.grid(row=0, column=1, columnspan=8, rowspan=8)
self.colourindex = 0
self.square= (0,0)
self.promotefont=("Segoe UI Symbol", 35)
self.piecefont=("Segoe UI Symbol", 30)
self.newgame=tk.Button(self, text="New Game", font=("Segoe UI", 15), command=self.drawboard)
self.newgame.grid(row=0, column=0)
def drawboard(self):
x=0
y=0
for column in range(self.n):
self.changecolours()
x=x+1
y=0
for row in range(self.n):
y=y+1
colour = self.colours[self.colourindex]
thebuttons=(tk.Button(self.middleframe, text="♚", bg=colour, borderwidth=2, relief="solid", font=self.piecefont, ))
thebuttons.grid(column=(x-1), row=(y-1))
self.changecolours()
def changecolours(self):
self.colourindex = (self.colourindex + 1) % 2