def mouseMoveEvent(self, event): if (self._clickPos is None or (event.pos() - self._clickPos).manhattanLength() < QApplication.startDragDistance()): return # _log.debug("Drag move") # render before detachment otherwise it might look ugly pixmap = QPixmap(self.size()) self.render(pixmap) self.setVisible(False) if len(self._dock.parentContainer.flatDockList) == 1: self._dock.parentContainer.setVisible(False) # Build drag object event.accept() drag = QDrag(self) mimeData = QMimeData() encodedData = QByteArray(pickle.dumps(self._dock.uid)) mimeData.setData(MIME_TYPE, encodedData) drag.setMimeData(mimeData) drag.setPixmap(pixmap) action = drag.exec_(Qt.MoveAction) _log.debug("After drag. Action: {}".format(action)) if Qt.IgnoreAction == action: _log.debug("D'n'D canceled") self.setVisible(True) self._dock.parentContainer.setVisible(True)
def mouseMoveEvent(self, event): from qtpy.QtCore import QMimeData, QByteArray from qtpy.QtGui import QPixmap, QDrag if not (event.button() != Qt.LeftButton and isinstance(self.dragLabel, QLabel)): return if (event.pos() - self.dragStartPosition ).manhattanLength() < QApplication.startDragDistance(): return axis_index = self.filters_layout.indexOf(self.dragLabel) // 2 # prepare hotSpot, mimeData and pixmap objects mimeData = QMimeData() mimeData.setText(self.dragLabel.text()) mimeData.setData("application/x-axis-index", QByteArray.number(axis_index)) pixmap = QPixmap(self.dragLabel.size()) self.dragLabel.render(pixmap) # prepare drag object drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - self.dragStartPosition) drag.exec_(Qt.MoveAction | Qt.CopyAction, Qt.CopyAction)
def export_to_clipboard_as_svg(scene): print(f"exporting SVG to clipboard") buffer = QBuffer() svg_gen = QSvgGenerator() svg_gen.setOutputDevice(buffer) render_to_svggen(scene, svg_gen) data = QMimeData() data.setData("image/svg+xml", buffer.buffer()) qApp.clipboard().setMimeData(data, QClipboard.Clipboard)
def mimeData(self, indexes): self.indexes = [ index.internalPointer() for index in indexes if index.column() == 0 ] mimedata = QMimeData() mimedata.setData('application/x-qabstractitemmodeldatalist', QByteArray()) # run virtual function self.dragStartEvent(self.indexes) return mimedata
def mouseMoveEvent(self, event): """Override Qt method""" if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__drag_start_pos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() # Converting id's to long to avoid an OverflowError with PySide if PY2: ancestor_id = long(id(self.ancestor)) parent_widget_id = long(id(self.parentWidget())) self_id = long(id(self)) else: ancestor_id = id(self.ancestor) parent_widget_id = id(self.parentWidget()) self_id = id(self) mimeData.setData("parent-id", QByteArray.number(ancestor_id)) mimeData.setData("tabwidget-id", QByteArray.number(parent_widget_id)) mimeData.setData("tabbar-id", QByteArray.number(self_id)) mimeData.setData( "source-index", QByteArray.number(self.tabAt(self.__drag_start_pos))) drag.setMimeData(mimeData) drag.exec_() QTabBar.mouseMoveEvent(self, event)
def mouseMoveEvent(self, event): """Override Qt method""" if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__drag_start_pos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() # Converting id's to long to avoid an OverflowError with PySide if PY2: ancestor_id = long(id(self.ancestor)) parent_widget_id = long(id(self.parentWidget())) self_id = long(id(self)) else: ancestor_id = id(self.ancestor) parent_widget_id = id(self.parentWidget()) self_id = id(self) mimeData.setData("parent-id", QByteArray.number(ancestor_id)) mimeData.setData("tabwidget-id", QByteArray.number(parent_widget_id)) mimeData.setData("tabbar-id", QByteArray.number(self_id)) mimeData.setData("source-index", QByteArray.number(self.tabAt(self.__drag_start_pos))) drag.setMimeData(mimeData) drag.exec_() QTabBar.mouseMoveEvent(self, event)
def mimeData(self, indexes): def path(x): return "/".join(x.path) def node(x): return self.node_from_index(x) mimedata = QMimeData() data = QByteArray() stream = QDataStream(data, QIODevice.WriteOnly) for path in set(path(node(index)) for index in indexes if index.isValid()): stream.writeQString(path) mimedata.setData("application/x_nodepath.list", data) return mimedata
def mouseMoveEvent(self, event): """Override Qt method""" if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__drag_start_pos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() ancestor_id = to_text_string(id(self.ancestor)) parent_widget_id = to_text_string(id(self.parentWidget())) self_id = to_text_string(id(self)) source_index = to_text_string(self.tabAt(self.__drag_start_pos)) mimeData.setData("parent-id", to_binary_string(ancestor_id)) mimeData.setData("tabwidget-id", to_binary_string(parent_widget_id)) mimeData.setData("tabbar-id", to_binary_string(self_id)) mimeData.setData("source-index", to_binary_string(source_index)) drag.setMimeData(mimeData) drag.exec_() QTabBar.mouseMoveEvent(self, event)
def mimeData(self, indices) -> QMimeData: data = dict(self.get_nodes_as_dict(indices)) mime = QMimeData() mime.setData('application/node', pickle.dumps(data)) return mime