wxpython:Как мне просмотреть перетаскиваемые данные в OnDragOver?

StackOverflow https://stackoverflow.com/questions/26706

Вопрос

Я немного озадачен перетаскиванием в wxPython (но, возможно, эти вопросы также относятся к перетаскиванию в других графических интерфейсах).Фреймворки предоставляют пару обратных вызовов (onEnter и OnDragOver), которые предположительно позволяют мне информировать систему о том, является ли текущее положение мыши допустимым местом для удаления всего, что перетаскивается.Из этих методов я могу вернуть wx.DragNone, wx.DragCopy и т.д.Что меня сбивает с толку, так это то, что из этих методов мне не разрешено вызывать getData, что означает, что мне не разрешено просматривать данные, которые перетаскивает пользователь.Если я не могу видеть данные, как я должен узнать, можно ли пользователю перейти сюда?

Это было полезно?

Решение

Одно из решений, которое является взломом ограниченной полезности, заключается в том, что при инициировании перетаскивания сохраняйте перенесенные данные где-нибудь в глобальной или статической ссылке.Таким образом, в обработчиках onEnter и OnDragOver можно получить ссылку на перетаскиваемые данные.Это, конечно, полезно только для перетаскивания внутри одного и того же приложения (фактически, одного и того же экземпляра приложения).

Другие советы

Нет никакого способа увидеть перетаскиваемые данные в OnEnter и OnDragOver методы.

Единственное решение, которое я нашел, - это сохранить перетаскиваемый элемент в некоторой переменной экземпляра, которая затем доступна для чтения внутри этих методов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top