Tkinter坐标从3开始吗?

3 投票
2 回答
565 浏览
提问于 2025-04-16 04:49

我有以下代码:

from Tkinter import *

master = Tk()
canvas = Canvas(master, width=640, height=480, bd=0)
canvas.pack()

line_coords = (3, 3, 3, 100)
canvas.create_line(*line_coords, fill='red')

mainloop()

这段代码会在左上角画一条线。可是如果我把line_coords改成(2, 2, 2, 100),这条线就不显示了。感觉好像坐标系统是从(3, 3)开始的。

2 个回答

0

坐标系统可能是从左上角开始的,这个左上角包括操作系统的标题栏和边框,所以你需要稍微向右和向下绘制一些内容。

这通常是和操作系统有关的事情。

3

画布的坐标系统是从零开始的,窗口的边框和你的问题没有关系。

问题在于,你的系统中画布的默认高亮厚度是3,这个厚度遮住了你的线条。试着把高亮厚度设置为零,这样即使x坐标是0,你也能看到你的线条。

不幸的是,边框宽度和高亮厚度都会影响画布的坐标系统。

撰写回答