Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2015 09:06:48

Nahtrezer
Зарегистрирован: 2013-09-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Связь элементов Canvas со списком

Суть такова…
Disclamer: кода не будет, потому как еще не могу придумать концепт, за чем, собственно, и обращаюсь.

Идея такая: на канву добавляются (по запросу пользователя, кликом мыши) элементы (прямоугольники, допустим) которые символизируют собой также объекты в списке. После того, как пользователь завершил создание “графической части” с элементами (объекты разных классов) в списке производятся некие действия. Проблема в следующем - пользователь может “передумать” и удалить какой-то объект с канвы.
Вопрос: каким образом можно “увязать” список объектов, с которыми будут выполняться действия и непосредственно графическое отображение этого списка? Возможно у кого-то есть рабочие примеры таких приложений, или кто-то знает приложение со схожим функционалом с открытыми исходниками, где можно было бы подсмотреть?
Заранее благодарен всем отписавшимся.

UPD:
После того, как написал сообщение подумал - возможно имеет смысл замкнуть работу пользователя непосредственно на “списке”, а канву просто перерисовывать каждый раз, когда в списке происходит какое-то изменение?
Но в таком случае возникает проблема - у пользователя должна быть возможность добавлять объекты “между” уже существующими.
Всё еще благодарен за рекомендации/примеры.

UPD:
Ну и, конечно, в пылу я забыл написать, что в качестве GUI библиотеки решил использовать Tkinter.

Отредактировано Nahtrezer (Март 2, 2015 09:20:55)

Офлайн

#2 Март 2, 2015 12:13:44

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Связь элементов Canvas со списком

Зачем канвас. Можно два связанных списка. Первый - возможное количество вариантов. Второй - выбранные варианты. Если же нужно графическое решение (картинка там с текстом или что-то похожее), тогда необходимо в канвасе реализовывать такое понятие, как курсор вставки. Чтобы можно было его перемещать вверх и вниз. Последовательность объектов на канвасе можно узнавать либо по его позиции (координатам) либо предварительной фиксацией методом присвоения тегов.

P.S. Тема должна быть не здесь, а в разделе GUI

Отредактировано 4kpt_III (Март 2, 2015 12:14:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version