Когда событие уровня окна (например, щелчок мыши или перетаскивание) происходит в приложении Kivy, оно передается всему дереву виджетов. У меня есть несколько виджетов одного и того же класса, распределенных по моему интерфейсу, и мне нужно знать, какое событие произошло. Хотя я могу фильтровать, используя self.collide()
, после того, как я это сделаю, мне нужно знать, КАКОЙ виджет это - т.е. это верхний виджет в моем пользовательском интерфейсе, или нижний, или что.
Я намеревался сделать это, присваивая уникальное имя значению «id» в файле kv для каждого соответствующего виджета, а затем запускать наблюдения в моем коде на основе этого. Но я был разочарован тем, что обнаружил , что "... обратите внимание, что идентификатор не будет доступен в экземпляре виджета ..."
, так как лучше всего дать каждому виджету уникальный идентификатор в файле kv lang, который может быть ссылкой в коде? Конечно, я мог бы использовать свойства объекта, но это кажется излишним. Есть какой-то более простой метод?