【问题标题】:Drawing rectangle on python Tkinter canvas that covers the entire canvas does not show border on top and left在覆盖整个画布的python Tkinter画布上绘制矩形不会在顶部和左侧显示边框
【发布时间】:2016-06-11 05:40:16
【问题描述】:

我正在尝试在 Tkinter (Python 2.7) 画布内创建一个与画布尺寸相同的矩形。这是代码的相关部分:

self.canvas = Canvas(self, width=100, height=100, backround="yellow")
self.canvas.create_rectangle(0,0,100,100)

这绘制了一个矩形,但我看不到矩形的左边框和上边框。如果我从 5,5 而不是 0,0 开始矩形,我可以看到矩形的边框。关于为什么会发生这种情况以及如何解决它的任何想法?

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    不幸的是,画布边框包含在可绘制区域中。尝试在画布上将borderwidthhighlightthickness 属性设置为零。

    您还需要将矩形的坐标调整为以 99 结束,因为计数从零开始(如果宽度为 100,则坐标从 0 到 99)。

    【讨论】:

    • 没错。为了增加您的答案,Canvas 的边框通常默认设置为 1 像素,因此通过将左上角设置为 (0,0),矩形的边框变得与不能的 Canvas 的边框相同被绘制是因为它们位于画布坐标系内(你不能在它占据的空间中绘制)。因此,如果 OP 想要保持默认值,他可以将左上角移动到坐标系的边框大小,这意味着他必须输入 (1,1) 而不是 (0,0) 和指令 @987654326 @ 有效。
    • borderwidthhighlightthickness 都设置为 0 对我有用。但是,正如您已经提到的,这导致右侧和底部轮廓在画布之外呈现,因为我的坐标偏离了 1(即它们应该是 (99,99) 而不是 (100,100)
    猜你喜欢
    • 2019-08-14
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多