wxpython: как проверить перетаскиваемые данные в OnDragOver? - PullRequest
6 голосов
/ 25 августа 2008

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

Ответы [ 2 ]

1 голос
/ 26 сентября 2008

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

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

1 голос
/ 25 августа 2008

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

...