PyQt5 Drag'n'Drop перетащить виджет

Я пишу программу StickerPanel на Python с использованием PyQt5, и хочу чтоб можно было мышкой перетащить QPushButton в другое окно (например Telegram) в виде файла WEBP. Т. е. отправить объект. (есть похожая тема, но там получение объекта)

Как это можно сделать?


Ответы (1 шт):

Автор решения: MainPlay TG

Сам разобрался и сделал через QDrag

class StickerButton(QPushButton):
  def mouseMoveEvent(self,event:QMouseEvent):
    img:QImage=IMAGES["ID картинки из кеша"]
    drag=QDrag(self)
    mime=QMimeData()
    mime.setImageData(img)
    # pixmap=QPixmap() # Размер слишком большой, отключил это
    # pixmap.convertFromImage(img)
    drag.setMimeData(mime)
    # drag.setPixmap(pixmap)
    drag.exec(Qt.DropAction.CopyAction)
→ Ссылка