Координаты Ткинтера начинаются с 3? - PullRequest
3 голосов
/ 01 октября 2010

У меня есть следующий код:

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 ]

3 голосов
/ 01 октября 2010

Координаты холста однозначно начинаются с нуля, а оконная рама не имеет ничего общего с вашей проблемой.

Проблема заключается в том, что по умолчанию highththickness для canvas в вашей системе равен 3, и именно это скрывает вашу линию.Попробуйте установить значение highlightthickness равным нулю, и вы увидите свою линию, даже если координата x равна 0.

К сожалению, как ширина полосы, так и highlightthickness нарушают систему координат холста.

0 голосов
/ 01 октября 2010

система координат может начинаться в верхнем левом углу , включая строку заголовка и границу операционной системы, поэтому вам придется рендериться вправо и вниз.

Обычно этозависит от операционной системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...