def do_drag(self, widget): """Perform the drag operation for the widget. Parameters ---------- widget: QWidget A reference to the viewport widget. """ drag_data = self.declaration.drag_start() if drag_data is None: return # widget = self.widget qdrag = QDrag(widget) qdrag.setMimeData(drag_data.mime_data.q_data()) if drag_data.image is not None: qimg = get_cached_qimage(drag_data.image) qdrag.setPixmap(QPixmap.fromImage(qimg)) # else: # if __version_info__ < (5, ): # qdrag.setPixmap(QPixmap.grabWidget(self.widget)) # else: # qdrag.setPixmap(widget.grab()) if drag_data.hotspot: qdrag.setHotSpot(QPoint(*drag_data.hotspot)) else: cursor_position = widget.mapFromGlobal(QCursor.pos()) qdrag.setHotSpot(cursor_position) default = Qt.DropAction(drag_data.default_drop_action) supported = Qt.DropActions(drag_data.supported_actions) qresult = qdrag.exec_(supported, default) self.declaration.drag_end(drag_data, DropAction(int(qresult)))
def possible_actions(self): """ Get the OR'd combination of possible drop actions. Returns ------- result : DropAction.Flags The combination of possible drop actions. """ return DropAction.Flags(int(self._q_event.possibleActions()))
def proposed_action(self): """ Get the action proposed to be taken by the drop target. Returns ------- result : DropAction The proposed action for the drop target. """ return DropAction(int(self._q_event.proposedAction()))
def drop_action(self): """ Get the action to be performed by the drop target. Returns ------- result : DropAction A drop action enum value. """ return DropAction(int(self._q_event.dropAction()))
def do_drag(self): """ Perform the drag operation for the widget. """ drag_data = self.declaration.drag_start() if drag_data is None: return widget = self.widget qdrag = QDrag(widget) qdrag.setMimeData(drag_data.mime_data.q_data()) if drag_data.image is not None: qimg = get_cached_qimage(drag_data.image) qdrag.setPixmap(QPixmap.fromImage(qimg)) else: qdrag.setPixmap(QPixmap.grabWidget(widget)) default = Qt.DropAction(drag_data.default_drop_action) supported = Qt.DropActions(drag_data.supported_actions) qresult = qdrag.exec_(supported, default) self.declaration.drag_end(drag_data, DropAction(int(qresult)))