Tkinter坐标从3开始?

时间:2010-09-30 23:49:32

标签: python tkinter

我有以下代码:

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)

Canvas坐标明确地从零开始,窗框与您的问题无关。

问题是系统上画布的默认高亮度是3,这就是模糊你的线条的原因。尝试将highlightthickness设置为零,即使x坐标为0,您也会看到您的线。

不幸的是,borderwidth和highlightthickness都会侵占画布的坐标系。

答案 1 :(得分:0)

坐标系可以从左上角开始,包括操作系统的标题栏和边框,所以你必须向右和向下渲染。

它通常依赖于操作系统。