2010-09-30 1 views
3

У меня есть следующий код:Координаты Tkinter начинаются с 3?

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).

ответ

3

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

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

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

+0

Да, ты прав. Установка подсветки на 0 устраняет проблему. Благодаря! – ysimonson

0

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

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

+0

Есть ли способ получить tkinter для автоматического перевода координат по мере необходимости? Или я мог бы, по крайней мере, определить, какое смещение является программным, чтобы сделать переводы самостоятельно? – ysimonson

+0

Не уверен в этом, так как он зависит от операционной системы, но если вы знаете, что собираетесь использовать программу только в одной операционной системе, вы всегда можете сделать свою собственную функцию. – oadams

+1

Этот ответ полностью ложный. –

 Смежные вопросы

  • Нет связанных вопросов^_^