2012-11-11 3 views
1

Я создаю клонированный пасьянс, используя Python Tkinter window toolkit. В моем окне содержится основной холст, а в основном холсте - серия виджетов, которые наследуют Canvas, которые держат карты. Я внедрил систему «Перетащить на перемещение», где пользователь может щелкнуть мышью, чтобы выбрать карту на одном из внутренних холстов, перетащить ее на новый холст и отпустить, чтобы поместить карту в принимающий холст.Могу ли я нарисовать поверх холста внутри другого холста?

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

Вот пример, где я нарисовал несколько из них, чтобы эффект можно было увидеть четко, и внутренние полотна также хорошо видны.

a screenshot of the overlap problem http://i46.tinypic.com/wvcrbt.jpg

Что я пробовал: Я пытался переместить холсты назад, используя Misc.lower (aCanvas), но я не смог создать желаемый эффект. Я также попытался создать пользовательский переопределенный курсор, но, похоже, размер моего курсора ограничен 32px * 32px, чего недостаточно для размера изображений карт, которые я хочу переместить.

Мой вопрос: Как нарисовать поверх холста, который находится внутри другого холста? Если я не могу, как бы вы решили эту проблему?

ответ

1

Вы не можете делать то, что хотите. Встроенные виджеты всегда находятся над элементами холста.

Почему вы встраиваете холсты внутри bcanvases? Почему бы просто не использовать один холст?

+0

Полотна внутри моего холста представляют собой фактически специализированные коллекции, которые наследуют Canvas с помощью таких методов, как addCard(), removeCard(), dragNDropStart() и т. Д. Я не хотел обрабатывать рисунок на основе, таблице, рисовании и отходы сваи все из одного объекта холста. Это была моя попытка быть объектом, ориентированным на python. – lambdaman

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