Сведения о вопросе

Martincow

22:05, 6th August, 2020

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

Просмотров: 358   Ответов: 2

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



  Сведения об ответе

lats

08:41, 27th August, 2020

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


  Сведения об ответе

JUST___

19:14, 23rd August, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться