Как перетащить файл из вашего приложения в операционную систему — wxPython #22

автор

Вот что уж действительно будет часто использоваться, так это перетаскивание файлов из вашего обычного приложения в файловую систему. В прошлой статье про Drag and Drop  вы видели пример перетаскивания файлов в ваше приложение. Теперь мы рассмотрим то, как их вытащить оттуда.

Приступая к работе

Скорее всего вы решите использовать виджеты wx.ListCtrl или ObjectListView, так как они наиболее распространённые из тех, что используются для отображения информации. Давайте взглянем на код:

Здесь есть несколько важных мест. Для начала, вам нужно забиндить EVT_LIST_BEGIN_DRAG, чтобы обнаружить соответствующее событие. Затем ваш хэндлер должен создать объект wx.FileDataObject и использовать метод AddFile, чтобы присоединить весь путь к внутреннему списку файлов.

Согласно документации wxPython, AddFile был создан только для Windows. Как бы то ни было, так как Робин Дан (создатель wxPython) рекомендует данный метод, я буду использовать именно его. Хочу лишь отметить, что у меня он работал также и на Xubuntu 14.04. В любом случае, нам также нужно определить DropSource и вызвать его метод DoDragDrop, и вот теперь вы закончили.

Итоги

К этому месту вы уже должны иметь представление о том, как перетаскивать файлы из вашего приложения в файловую систему или прямо на рабочий стол. Это довольно просто, но подобная возможность точно расширит функционал вашего приложения и сделает его более привлекательным для конечного пользователя.

Вам может быть интересно

Scroll Up