Drag&Drop файлов в PyQt

Drag&Drop файлов в PyQt

Приветствие. В этом посте покажу то, как можно добиться эффекта dran&drop файлов из проводника на вашу программу.

Проблематично было то, что все сайты писали о классе QUriDrag, с помощью которого можно было получить список файлов, которые были перетащены на окно, а такого класса не существовало.

Я не сразу понял, что этот класс существует только в 3 версии Qt.

Поэтому пришлось искать замену.

Для начала, нам нужно переопределить 2 события в нашего окна: dragEnterEvent, dropEvent

Если вам не нужен фильтр на тип файлов, которые можно перетащить, то переопределять dragEnterEvent нету необходимости, а если вы нуждаетесь в каком-то особенном типе файлов, тогда нужно проверять mime-типы.

Вот как выглядит переопределенный dragEnterEvent: def dragEnterEvent(self, event): print 'dragEnterEvent coming…' event. accept()

И завершающий момент: def dropEvent(self, event): print 'dropEvent coming…' listOfFiles = event. mimeData().urls()

В итоге вы получаете список путей к файлам.


Карта сайта


Информационный сайт Webavtocat.ru