from Tkinter import *


class Ball:
    def __init__(self, canvas, x1, y1, x2, y2):
        self.x1 = x1
        self.y1 = y1
        self.x2 = x2
        self.y2 = y2
        self.canvas = canvas
        self.ball = canvas.create_oval(self.x1, self.y1, self.x2, self.y2, fill="red")

# initialize root Window and canvas
root = Tk()
root.title("Balls")
root.resizable(False, False)
canvas = Canvas(root, width=300, height=300)
canvas.pack()

# create ball objects
ball = Ball(canvas, 0, 0, 300, 300)
root.mainloop()

如你所见,我在一张300*300的画布上画了一个300*300的椭圆形,但是这个椭圆形并不完全适合画布。结果是(Mac OS):
python - 为什么300 * 300的椭圆形不能完全适合300 * 300的 Canvas ?-LMLPHP
所以我的问题是:
为什么不合身?
我该怎么做才能避免这种尴尬的事情呢?
编辑:
ball = Ball(canvas, 1, 1, 299, 299)也不起作用,它给出:
python - 为什么300 * 300的椭圆形不能完全适合300 * 300的 Canvas ?-LMLPHP

最佳答案

默认情况下,画布的可绘制区域小于画布的总宽度和高度。总大小包括小部件边框和突出显示环。如果希望可绘制区域为宽度和高度的100%,则需要将画布的borderwidthhighlightthickness属性都设置为0(零)。

关于python - 为什么300 * 300的椭圆形不能完全适合300 * 300的 Canvas ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34547313/

10-11 01:11
查看更多