def __init__(self, l): super().__init__() mimedata = QMimeData() mimedata.setUrls([QUrl.fromLocalFile(os.path.abspath(fn)) for fn in l]) qdrag = QDrag(self) qdrag.setMimeData(mimedata) qdrag.exec(Qt.DropAction.MoveAction)
def mouseMoveEvent(self, ev): if (ev.pos() - self.press_pos).manhattanLength() > 16: # print("drag start") drag = QDrag(self.controller._gui._window) # Create the drag thumbnail if False: pix = QPixmap(self.tile_rect.width(), self.tile_rect.height()) painter = QPainter(pix) self.paint(painter, None, None) painter.end() drag.setPixmap(pix) drag.setHotSpot(ev.pos().toPoint() - self.tile_rect.topLeft()) else: pix = QPixmap("/usr/share/icons/mate/32x32/actions/gtk-dnd-multiple.png").scaled(48, 48) drag.setPixmap(pix) if not self.isSelected(): self.controller.clear_selection() self.setSelected(True) mime_data = self.controller.selection_to_mimedata(uri_only=True) drag.setMimeData(mime_data) # Qt does not allow custom drag actions officially. The # default drag action value is however carried through # even if it's invalid, but cursor changes and signals # like actionChanged() misbehave. The DragWidget class is # a workaround. drag_widget = DragWidget(None) # noqa: F841 # this will eat up the mouseReleaseEvent drag.exec(Qt.CopyAction | Qt.MoveAction | Qt.LinkAction | 0x40, 0x40)
def startDrag(self, dropActions): item = self.currentItem() mimeData = QMimeData() mimeData.setText(item.text()) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(QPoint(12, 12)) drag.exec(Qt.MoveAction)
def startDrag(self, supported_actions, **kwargs): drag = QDrag(self) data = QMimeData() if self.selectedItems(): item = self.selectedItems()[0] node_type = item.data(1, Qt.UserRole) if node_type: data.setText(json.dumps(node_type)) drag.setMimeData(data) drag.exec(supported_actions)
def mousePressEvent(self, e): drag = QDrag(self) drag.setPixmap(self.pixmap()) mimeData = QMimeData() mimeData.setText(self.block.block.TYPE) drag.setMimeData(mimeData) drag.setHotSpot(e.pos()) drag.exec()
def mouseMoveEvent(self, event): """Allows drag and drop functionality, on left click and hold. """ if self.draggable: if event.buttons() == Qt.LeftButton: mimeData = QMimeData() mimeData.setText(str(self.index)) drag = QDrag(self) drag.setMimeData(mimeData) drag.exec(Qt.MoveAction) return
def mouseMoveEvent(self, event): drag = QDrag(self) # make the drag look like our widget pixmap = self.grab() drag.setPixmap(pixmap) # empty for now mime_data = QMimeData() data = [self.x, self.y] mime_data.setData("application/x-nakki-construction-label", bytes(json.dumps(data), "utf-8")) drag.setMimeData(mime_data) drag.exec()
def drag(self, widget): self.scene().removeItem(self) self.isTaken = False drag = QDrag(widget) mime = QMimeData() mime.setProperty('node', self.data) drag.setMimeData(mime) pixmap = self.drawPixmap() drag.setPixmap(pixmap) drag.setHotSpot(QPoint(self.radius, self.radius)) drag.exec()
def on_verticalLineButton_pressed(self): mime_data = QMimeData() mime_data.setData('application/x-vertical-line', b'vertical line') mime_data.setText(self.verticalLineButton.text()) drag = QDrag(self.verticalLineButton) drag.setMimeData(mime_data) pixmap = QPixmap( pkg_resources.resource_filename('wiggle.app.panosphere.images', 'VerticalLine32.png')) drag.setHotSpot(QPoint(16, 4)) drag.setPixmap(pixmap) drag.exec(Qt.CopyAction)
def mousePressEvent(self, event): mimeData = QMimeData() b = bytearray() b.extend(self._ident.encode()) mimeData.setData('logo/ident', b) mimeData.setText(self._ident) drag = QDrag(self) drag.setPixmap(self.pixmap()) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.exec(Qt.CopyAction | Qt.CopyAction, Qt.CopyAction)
def mouseMoveEvent(self, event): #handles drag if not (event.buttons() and Qt.LeftButton): return #ignore if left click is not held if (event.pos() - self.dragStartPosition ).manhattanLength() < app.app.startDragDistance(): return #check if mouse was dragged enough, manhattan length is a rough and quick method in qt drag = QDrag(self) #create drag object mimeData = QMimeData() #create drag mime mimeData.setText(self.itemObject) # set mime value for view to accept drag.setMimeData(mimeData) # attach mime to drag drag.exec(Qt.CopyAction) #execute drag
def mouseMoveEvent(self, event): if event.buttons() != Qt.LeftButton or self.window().img is None: return img_transparent = to_transparent_image(self.window().img) mime = QMimeData() mime.setImageData(img_transparent) drag = QDrag(self) drag.setMimeData(mime) drag.setPixmap(self.pixmap()) drag.exec(Qt.MoveAction)
def mousePressEvent(self, event): super().mousePressEvent(event) current_item = self.currentItem() if current_item is None: return if current_item.parent() is not None: drag = QDrag(self) mime_data = QMimeData() mime_data.setText('|'.join([ self.currentItem().parent().text(0), self.currentItem().text(0) ])) drag.setMimeData(mime_data) drag.exec(Qt.MoveAction | Qt.CopyAction)
def mousePressEvent(self, event: QMouseEvent): index = self.indexAt(event.pos()) class_name = self.model().data(index, Qt.UserRole).value() pixmap = self.model().data(index, Qt.DecorationRole).value() item_data = QByteArray() data_stream = QDataStream(item_data, QIODevice.WriteOnly) data_stream.writeQString(class_name) mime_data = QMimeData() mime_data.setData("application/x-simitemdata", item_data) drag = QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drag.exec(Qt.MoveAction)
def mousePressEvent(self, event): child = self.childAt(event.pos()) if child is None: return hotSpot = event.pos() - child.pos() itemData = QByteArray() dataStream = QDataStream(itemData, QIODevice.WriteOnly) dataStream.writeQString(child.labelText()) dataStream << hotSpot mimeData = QMimeData() mimeData.setData(fridgeMagnetsMimeType(), itemData) mimeData.setText(child.labelText()) drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(child.pixmap()) drag.setHotSpot(hotSpot) child.hide() if drag.exec(Qt.MoveAction | Qt.CopyAction, Qt.CopyAction) == Qt.MoveAction: child.close() else: child.show()
def mousePressEvent(self, event): from widgets.sectioneditor import SectionEditor mimeData = WidgetMimeData() mimeData.setSize(self.size().width(), self.size().height()) mimeData.setData(self) parent = self.parentWidget() if isinstance(parent, SectionEditor): mimeData.source_list = parent.section._items pixmap = QPixmap(self.size()) self.render(pixmap) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) drag.setPixmap(pixmap) se = self.parentWidget() se.removeRowEditor(self) pe = se.parentWidget() pe.enableColumnAcceptDrop(False) self.hide() if drag.exec(Qt.MoveAction) == Qt.IgnoreAction: se.addRowEditor(self) self.show() pe.enableColumnAcceptDrop(True)
def startDrag(self, DropActions): """ 开始拖 """ item = self.currentItem() # 表示一个小拼图 itemData = QByteArray() # QByteArray类提供了一个字节数组 dataStream = QDataStream(itemData, QIODevice.WriteOnly) # QDataStream类提供二进制数据到QIODevice的序列化 piecePix = item.data(Qt.UserRole) pieceLocation = item.data(Qt.UserRole+1) # 返回给定角色的项目数据,这里分别是拼图本身和拼图的位置。 # 这里的Qt.UserRole是特定于应用程序目的的角色。 dataStream << piecePix << pieceLocation # 将拼图数据和拼图位置信息存入数据流中,注意:这里的操作符<< mimeData = QMimeData() mimeData.setData("image/x-puzzle-xdbcb8", itemData) # 构造一个没有数据的新MIME数据对象 drag = QDrag(self) drag.setMimeData(mimeData) # QDrag类支持基于MIME的拖放数据传输 drag.setHotSpot(QPoint(piecePix.width()/2, piecePix.height()/2)) # 光标的热点指向其底边的中心 drag.setPixmap(piecePix) # 拖得时候显示的图片 if drag.exec(Qt.MoveAction) == Qt.MoveAction: moveItem = self.takeItem(self.row(item)) del moveItem
def mousePressEvent(self, event): from widgets.columneditor import ColumnEditor from widgets.sectioneditor import SectionEditor if self.mode != Mode.ENABLED or event.button() != Qt.LeftButton: return if self.parentWidget().layout.count() == 1: self.elementDragged.emit() mimeData = WidgetMimeData() mimeData.setData(self) parent = self.parentWidget() if isinstance(parent, ColumnEditor): mimeData.source_list = parent.column._items elif isinstance(parent, SectionEditor): mimeData.source_list = parent.section._items pixmap = QPixmap(self.size()) self.render(pixmap) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) drag.setPixmap(pixmap) self.hide() if drag.exec(Qt.MoveAction) == Qt.IgnoreAction: self.show()
def mousePressEvent(self, event): mimeData = WidgetMimeData() mimeData.setSize(self.size().width(), self.size().height()) mimeData.setData(self) pixmap = QPixmap(self.size()) self.render(pixmap) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) drag.setPixmap(pixmap) pe = self.parentWidget() pe.removeSectionEditor(self) pe.enableColumnAcceptDrop(False) pe.enableSectionAcceptDrop(False) self.hide() if drag.exec(Qt.MoveAction) == Qt.IgnoreAction: pe.addSection(self) self.show() pe.enableColumnAcceptDrop(True) pe.enableSectionAcceptDrop(True)
def mouseMoveEvent(self, a0: QMouseEvent) -> None: if (a0.buttons() == Qt.LeftButton) and abs(a0.pos().y()) > 30: globalPos = self.mapToGlobal(a0.pos()) posInTab = self.mapFromGlobal(globalPos) TabBar.indexTabToDrag = self.currentIndex() tabRect = self.tabRect(self.indexTabToDrag) pixmap = QPixmap(tabRect.size()) self.render(pixmap, QPoint(), QRegion(tabRect)) mimeData = QMimeData() drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) cursor = QCursor(Qt.OpenHandCursor) drag.setHotSpot(cursor.pos()) drag.setHotSpot(a0.pos() - posInTab) drag.setDragCursor(cursor.pixmap(), Qt.MoveAction) dropAction = drag.exec(Qt.MoveAction) # If the drag completed outside of the tab bar, detach the tab and move # the content to the current cursor position if dropAction == Qt.IgnoreAction: a0.accept() self.detachTab(self.indexTabToDrag, self.cursor().pos()) else: super(TabBar, self).mouseMoveEvent(a0)
def mouseMoveEvent(self, event): if QLineF(event.screenPos(), event.buttonDownScreenPos(Qt.LeftButton)).length() < \ QApplication.startDragDistance(): return drag = QDrag(event.widget()) mime = QMimeData() drag.setMimeData(mime) mime.setImageData(REDDISK) dragImg = REDDISK.scaled(40, 40, Qt.KeepAspectRatio) drag.setPixmap(QPixmap.fromImage(dragImg)) drag.setHotSpot(QPoint(dragImg.width() / 2, dragImg.height()/ 2)) drag.exec() self.setCursor(Qt.OpenHandCursor)
def startDrag(self, supported_actions) -> None: widget = self.itemWidget(self.selectedItems()[0]) mimeData = QMimeData() folder = os.path.basename(self.parent.current_folder) if folder == "scripts": mimeData.setData("assets/script", widget.path.encode("utf-8")) elif folder == "textures": mimeData.setData("assets/texture", widget.path.encode("utf-8")) elif folder == "sounds": mimeData.setData("assets/sound", widget.path.encode("utf-8")) else: return drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(widget.icon.pixmap()) drag.exec(Qt.MoveAction)
def mousePressEvent(self, event): if event.button() == Qt.LeftButton: if self.mouse_over_tile != -1: self.drag_obj = self.mouse_over_tile if self.drag_obj != -1: drag = QDrag(self) mime_data = QMimeData() # GRUMBEL obj = SuperTuxBadGuyData() data = QByteArray(pickle.dumps(self.drag_obj)) mime_data.setData("application/x-supertux-badguy", data) drag.setMimeData(mime_data) pixmap = QPixmap.fromImage(self.brushes[self.drag_obj].get_sprite().get_pixelbuffer().get_qimage()) drag.setPixmap(pixmap) drag.setHotSpot(QPoint(self.brushes[self.drag_obj].get_sprite().width / 2, self.brushes[self.drag_obj].get_sprite().height / 2)) drag.exec() self.drag_obj = -1
def mouseMoveEvent(self,e): if e.buttons()!=Qt.RightButton: return mimeData=QMimeData() drag=QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(self.rect().topLeft()) # print(e.pos()-self.rect().topLeft()) doAction=drag.exec(Qt.MoveAction)
def mouseMoveEvent(self, event): super(CVariableAttrTree, self).mouseMoveEvent(event) if not self.m_DragPosition: return if (event.pos() - self.m_DragPosition).manhattanLength() < QApplication.startDragDistance(): return oItem = self.currentItem() drag = QDrag(self) oMimeData = basetree.CBPAttrMimeData() oMimeData.SetItemInfo(oItem.GetInfo()) drag.setMimeData(oMimeData) pixMap = QPixmap(120, 18) painter = QPainter(pixMap) image = QImage(":/icon/btn_1.png") painter.drawImage(QRectF(0, 0, 16, 16), image) drag.setPixmap(pixMap) drag.exec(Qt.MoveAction) del painter del pixMap del drag
def mouseMoveEvent(self, event): if event.modifiers() & Qt.ShiftModifier: QGraphicsItem.mouseMoveEvent(self, event) else: drag = QDrag(event.widget()) drag.setMimeData(env.strips.mkMimeDez(self.strip)) pixmap = self.toPixmap() drag.setPixmap(pixmap) drag.setHotSpot(pixmap.rect().center()) self.setVisible(False) if drag.exec() != Qt.MoveAction: self.setVisible(True)
def mouseMoveEvent(self, event): if (event.buttons() & Qt.LeftButton and self._dragstartpos is not None and (event.pos() - self._dragstartpos).manhattanLength() >= QApplication.startDragDistance()): column = self.logicalIndexAt(self._dragstartpos) data = [column, self.model().headerData(column, Qt.Horizontal)] self._dragstartpos = None drag = QDrag(self) drag.setMimeData(self.encodeMimeData([data])) action = drag.exec(Qt.MoveAction) if action != Qt.IgnoreAction: self.setColumnHidden(column, True)
def mousePressEvent(self, press_event): parent = self.parent() for item in parent.items: item.deselect() self.selected = True drag = QDrag(self) mime = QMimeData() print(self.item.w_data_item.action.module + "." + self.item.w_data_item.action_name) mime.setText(self.item.w_data_item.action.module + "." + self.item.w_data_item.action_name) drag.setMimeData(mime) drag.setPixmap(self.pixmap) drag.setHotSpot(QPoint( drag.pixmap().width()/2, drag.pixmap().height()/2)) ret = drag.exec(Qt.MoveAction)
def mouseMoveEvent(self, event: QMouseEvent) -> None: if not (event.buttons().__int__() & Qt.LeftButton): return dist = QPoint(event.pos() - self.__dragStartPosition).manhattanLength() if dist < QApplication.startDragDistance(): return drag = QDrag(self) mimeData = QMimeData() self.setDataToMime(mimeData) drag.setMimeData(mimeData) # drag.setHotSpot(event.pos() - ) dropAction = drag.exec()
def mouseMoveEvent(self, ev): if (ev.pos() - self.press_pos).manhattanLength() > 16: # print("drag start") drag = QDrag(self.controller._gui._window) # Create the drag thumbnail if False: pix = QPixmap(self.tile_rect.width(), self.tile_rect.height()) painter = QPainter(pix) self.paint(painter, None, None) painter.end() drag.setPixmap(pix) drag.setHotSpot(ev.pos().toPoint() - self.tile_rect.topLeft()) else: pix = QPixmap( "/usr/share/icons/mate/32x32/actions/gtk-dnd-multiple.png" ).scaled(48, 48) drag.setPixmap(pix) if not self.isSelected(): self.controller.clear_selection() self.setSelected(True) mime_data = self.controller.selection_to_mimedata(uri_only=True) drag.setMimeData(mime_data) # Qt does not allow custom drag actions officially. The # default drag action value is however carried through # even if it's invalid, but cursor changes and signals # like actionChanged() misbehave. The DragWidget class is # a workaround. drag_widget = DragWidget(None) # noqa: F841 # this will eat up the mouseReleaseEvent drag.exec(Qt.CopyAction | Qt.MoveAction | Qt.LinkAction | 0x40, 0x40)
def startDrag(self, e): index = self.indexAt(e.pos()) if not index.isValid(): return selected = self.model().data(index, Qt.UserRole) selected._time = self.model().time # selected.file = self; bstream = pickle.dumps(selected) mimeData = QMimeData() mimeData.setData("application/x-DataItem", bstream) drag = QDrag(self) drag.setMimeData(mimeData) result = drag.exec()