gpt4 book ai didi

python - 网格中的 tkinter Canvas 有额外的空间

转载 作者:行者123 更新时间:2023-11-28 22:56:17 24 4
gpt4 key购买 nike

我在框架内有一个 Canvas ,我说过 Canvas 应该是 250x250。但出于某种原因,它正在被创建得更大,在右侧和底部有额外的空间。这是我的代码……有什么想法吗?

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()

结果是这样的:

canvas with extra space

在绘制较小的正方形后,我宁愿避免右侧和 Canvas 底部的白色排水沟。

最佳答案

Canvas 有边框,由 borderwidth 属性控制。它还有另一个由 highlightthickness 属性控制的边框。将这两个设置为零,您的 Canvas 应该正好是您设置的大小。

border 属性通常用于提供 3D 效果——凸起的边框、凹陷的边框或其他一些变体。 highlightthickness(和 highlightcolor)属性定义了一个实线轮廓,用于表示小部件具有键盘焦点。

关于python - 网格中的 tkinter Canvas 有额外的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com