我正在尝试使用tkinter画布绘制网格。逻辑非常简单:对于网格中的每个节点,我都使用其左上角和右下角绘制一个矩形[下面的代码]。
问题在于tkinter不会分别渲染第一列和第一行中节点的左边界和上边界。就像tkinter会将画布偏移少量像素。 是否有配置可纠正此问题?我当前的解决方法是从cellW
和cellH
中减去一些小的值,然后偏移每个节点的x1
和{{1 }} ...这很hacky。
我没有做任何奇怪的事情,只是在根窗口上做一个简单的画布。
y1
答案 0 :(得分:0)
我发现有关画布的一件令人讨厌的事情是边框是坐标空间的一部分。当您在左边缘画一条线时,它会被边框遮住。
是否有配置可以纠正此问题?
是的。
您可以通过完全关闭与边框有关的属性来解决此问题:
canvas = tk.Canvas(window, width=winW, height=winH,
borderwidth=0, highlightthickness=0)
如果希望在画布周围有某种边框,可以将画布放在框架中,然后使用该框架绘制边框。