При использовании этого вызова функции в TkInter:TkInter create_rectangle() фиксированный размер
canvas.create_rectangle(canvas.create_rectangle(x0, y0, x0+xsize, y0+ysize,
outline="black", width=outline_width)
Я хочу, я могу прямоугольника в предсказать размер. Проблема в том, что в зависимости от outline_width
общий размер прямоугольника меняется.
Например, если я держать постоянный
(xsize, ysize) = (20,20)
изменяясь outline_width
, я получаю странные размеры. Например, outline_width=1
дает квадрат 21px, а при использовании outline_width=4
- квадрат 24px. Это довольно проблемы для меня, потому что, если я не могу предсказать размер моего прямоугольника (то есть размер, включая контур), это повлияет на весь мой рисунок.
Было бы очевидно, что общая ширина x прямоугольника, например, будет определяться (xsize+outline_width
). Но тогда еще одна проблема заключается в том, что положение верхнего левого угла прямоугольника тоже меняется в зависимости от ширины контура.
Любое решение, позволяющее точно определить, где будет располагаться прямоугольник, с точки зрения верхнего левого угла и определения конечного размера?
EDIT: Включенная фотография. Обратите внимание, как прямоугольник «начинается» на двух совершенно разных позициях из окна (по оси X), нарисовал красную линию для справки.
Я бы очень хотел, чтобы верхний левый угол остается неизменным, независимо от моей ценности outline_width
. Или, по крайней мере, уметь знать, как сильно он сдвинется вправо, чтобы я мог изменить свои координаты, чтобы компенсировать это.
Благодаря
«Положение верхнего левого угла режанки изменяется также в зависимости от ширины контура« Как это меняется? – Goyo
Не могу точно сказать, как это меняется, потому что это то, о чем мой вопрос (я не знаю), но это ясно. Например, если я использую outline_width из 3, координата, в которой мой прямоугольник «начинается» по x, составляет 9, а если я использую outline_width из 10, он «начинается» в 5. Кажется, не имеет смысла me (измеряется относительно действительно фиксированной точки на окне). – Yannick
Это интересно - я не думаю, что я бы назвал эту ширину контура так же, как и ширину границы, потому что кажется, что половина ширины штриха находится внутри границы, а половина - снаружи. Возможно, вам придется катиться самостоятельно, если вы хотите более предсказуемого поведения ... –