我有一個框架內的畫布,我說畫布應該是250x250。但由於某種原因,它被創造得更大,在右側和底部都有額外的空間。這是我的代碼...任何想法?tkinter在網格中的畫布有額外的空間
from tkinter import *
from tkinter import ttk
from player import player0
alpha = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')
class GUI(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.boardsize = 250
self.sqsize = self.boardsize//5
master.title("Canvas with extra space")
self.initialdraw()
self.grid(row=0,column=0)
def initialdraw(self):
mainframe = ttk.Frame(self, padding=(5,5,5,5))
mainframe.grid(column=0, row=0, sticky=(N, S, E, W))
self.board = Canvas(mainframe, width=self.boardsize, height=self.boardsize,bg='white')
self.board.grid(row=1,column=0)
for row in range(5):
for col in range(5):
top = row * self.sqsize
left = col * self.sqsize
bottom = row * self.sqsize + self.sqsize -2
right = col * self.sqsize + self.sqsize -2
rect = self.board.create_rectangle(left,top,right,bottom,outline='gray',fill='')
self.board.focus_set()
if __name__ == '__main__':
tk = Tk()
gui = GUI(tk)
tk.mainloop()
結果是這樣的:
我寧願避免白水溝右側和畫布底部的小廣場已經制定之後。
非常有啓發性的答案!謝謝,板子沒有邊界看起來更乾淨,幾何實際上是有道理的。在我看來,畫布座標不應該包含邊界......爲什麼世界上的人會在可視區域之外,在邊界之外? – 2013-04-09 02:21:48
@ChrisIrwin:我不知道。我一直覺得很奇怪,0,0是在邊界。幾十年來一直如此,而且tk開發者很少做出與後向不兼容的變化。 – 2013-04-09 10:49:25