def onDrop(self, event: QDropEvent): if DEBUG: print('CalcSubWnd : onDrop') print(event.mimeData().text()) if event.mimeData().hasFormat(LISTBOX_MIMETYPE): eventData = event.mimeData().data(LISTBOX_MIMETYPE) dataStream = QDataStream(eventData, QIODevice.ReadOnly) pixmap = QPixmap() dataStream >> pixmap op_code = dataStream.readQString() text = dataStream.readQString() mouse_pos = event.pos() scene_pos = self.scene.grScene.views()[0].mapToScene(mouse_pos) if DEBUG: print(f'DROP: {op_code} {text} at {scene_pos}') try: node = NodeFactory.from_op_code(op_code)(self.scene) node.setPos(scene_pos.x(), scene_pos.y()) self.scene.history.storeHistory('Create node {}'.format( node.__class__.__name__)) event.setDropAction(Qt.MoveAction) event.accept() except Exception as e: dumpException(e) else: if DEBUG: print(' ... drop ignored, not requested format ', LISTBOX_MIMETYPE) event.ignore()
def dropEvent(self, event: QDropEvent): if not event.isAccepted() and event.source() == self: drop_row = self.drop_on(event) rows = sorted(set(item.row() for item in self.selectedItems())) rows_to_move = [[ QTableWidgetItem(self.item(row_index, column_index)) for column_index in range(self.columnCount()) ] for row_index in rows] for row_index in reversed(rows): self.removeRow(row_index) if row_index < drop_row: drop_row -= 1 for row_index, data in enumerate(rows_to_move): row_index += drop_row self.insertRow(row_index) for column_index, column_data in enumerate(data): self.setItem(row_index, column_index, column_data) event.accept() for row_index in range(len(rows_to_move)): for col_index in range(self.columnCount()): self.item(drop_row + row_index, col_index).setSelected(True) super().dropEvent(event)
def dropEvent(self, e: QDropEvent): # 마우스 위치를 이용하여 버튼의 위치를 변경 position = e.pos() self.btn.move(position) e.setDropAction(Qt.MoveAction) e.accept()
def dropEvent(self, e: QDropEvent): """Handle Drag and Drop events. The :py:class:`QDropEvent` performs the actual drop operation. We support the following operations: if an Image is dropped, we will use it as input image for the :py:class:`Toolbox`. """ mimeData = e.mimeData() if mimeData.hasUrls() and self._toolbox: # 1. We just consider the first URL, even if multiple URLs # are provided. url = mimeData.urls()[0] LOG.info("Drag and dropped %d URLs, took first: %s", len(mimeData.urls()), url) # 2. Convert the URL to a local filename filename = url.toLocalFile() description = f"Dropped in image ({filename})" LOG.info("Converted URL to local filename: '%s'", filename) # 3. Set this file as input image for the toolbox. self._toolbox.set_input_from_file(filename, description=description) # 4. Mark the Drop action as accepted (we actually perform # a CopyAction, no matter what was proposed) if e.proposedAction() == Qt.CopyAction: e.acceptProposedAction() else: # If you set a drop action that is not one of the # possible actions, the drag and drop operation will # default to a copy operation. e.setDropAction(Qt.CopyAction) e.accept()
def dropEvent(self, a0: QtGui.QDropEvent) -> None: if a0.mimeData().hasUrls() and a0.mimeData().urls()[0].isLocalFile(): a0.accept() files = [x.path() for x in a0.mimeData().urls()] self.filesdropped(files, a0)
def dropEvent(self, event: QDropEvent): if not self.scene_definition_windows.scene_size_initialized: QMessageBox.warning(None, "Error", "Scene size is not initialized!") event.ignore() return if event.mimeData().hasFormat(PhysicalObjectsModel.MIME_TYPE): dropped_po = pickle.loads(event.mimeData().data( PhysicalObjectsModel.MIME_TYPE)) if dropped_po: self.dropped_physical_object = dropped_po self.__physical_objects_model.add_physical_object_to_scene( dropped_po) dropped_po.scene_position = \ sceneutil.mouse_coordinates_to_image_coordinates(event.pos().x(), event.pos().y(), self.camera_view_size, self.image_frame) event.setDropAction(Qt.CopyAction) event.accept() else: event.ignore() else: event.ignore()
def dropEvent(self, e: QDropEvent): if e.mimeData().hasUrls(): e.accept() self.url = e.mimeData().urls()[0].toLocalFile() self.dropImage() else: e.ignore()
def dropEvent(self, event: QtGui.QDropEvent): if not event.isAccepted() and event.source() == self: drop_row = self.drop_on(event) rows = sorted(set(item.row() for item in self.selectedItems())) rows_to_move: List[zlm_core.ZlmLayer] = [ self.item(row_index, 0).layer_inst for row_index in rows ] for row_index in reversed(rows): self.removeRow(row_index) if row_index < drop_row: drop_row -= 1 for row_index, layer in enumerate(rows_to_move): row_index += drop_row self.insertRow(row_index) item = QtWidgets.QTableWidgetItem(layer.name) item.layer_inst = layer self.setItem(row_index, 0, item) event.accept() # for row_index in range(len(rows_to_move)): # self.item(drop_row + row_index, 0).setSelected(True) super().dropEvent(event)
def dropEvent(self, event: QDropEvent) -> None: if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() for url in event.mimeData().urls(): item = ResourcesItem() extension = os.path.splitext(url.fileName())[1] if extension == ".png" or extension == ".jpg" or extension == ".jpeg" or extension == ".bmp": item.setWhatsThis("Image") item.setIcon(QIcon(url.toLocalFile())) item.mySetData(QPixmap(url.toLocalFile())) elif extension == ".ttf": item.setWhatsThis("Font") item.setIcon(QIcon("Images/FontIcon.png")) fontId = QFontDatabase().addApplicationFont(url.toLocalFile()) item.mySetData(str(fontId)) else: return item.setText(os.path.splitext(url.fileName())[0]) item.mySetUrl(url.toLocalFile()) self.addItem(item) else: event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() self.drop.emit(event.mimeData().urls()) else: event.ignore()
def dropEvent(self, e: QDropEvent) -> None: """拖拽结束以后触发的事件""" paths = e.mimeData().text().split('\n') for path in paths: path = path.strip() if len(path) > 8: self.addItem(path.strip()[8:]) e.accept()
def drag_handler(self, event: QDropEvent, drop: bool=False): if event.mimeData().hasUrls(): event.setDropAction(Qt.CopyAction) event.accept() if drop: self.files_dropped.emit([url.toLocalFile() for url in event.mimeData().urls()]) else: event.ignore()
def dropEvent(self, a0: QtGui.QDropEvent) -> None: if a0.mimeData().hasUrls() and len( a0.mimeData().urls()) == 1 and os.path.isfile( a0.mimeData().urls()[0].toLocalFile()): a0.setDropAction(QtCore.Qt.CopyAction) a0.accept() self.file_signal.emit(a0.mimeData().urls()[0].toLocalFile()) else: a0.ignore()
def dropEvent(self, event: QDropEvent) -> None: super().dropEvent(event) mime_data: QMimeData = event.mimeData() # Accept only one file if mime_data.hasUrls() and len(mime_data.urls()) == 1: event.accept() self.dropped_file.emit(event) else: event.ignore()
def dropEvent(self, e: QtGui.QDropEvent): # todo: work in progress e.accept() if len(e.mimeData().urls()) == 1 and e.mimeData().urls()[0].toLocalFile().endswith('.txt'): # self._c.matchsettingspath = e.mimeData().urls()[0].toLocalFile() pass else: for url in e.mimeData().urls(): if url.toLocalFile().endswith('.Gbx'): print(url.toLocalFile())
def dropEvent(self, event: QDropEvent): if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() if Args().test: dialog = ExcelLoadingWidget(files=event.mimeData().urls()) dialog.show() else: event.ignore()
def _drop_event(self, event: QDropEvent): mime_data: QMimeData = event.mimeData() index = self.ui.dirTree.indexAt(event.pos()) act = self._set_action(index, mime_data, event.pos()) res = self.ui.dirTree.model().dropMimeData(mime_data, act, index) if res: event.accept() else: event.ignore()
def dropEvent(self, e: QDropEvent): position = e.pos() # 보내온 데이터를 받기 # 그랩 당시의 마우스 위치값을 함께 계산하여 위젯 위치 보정 offset = e.mimeData().data("application/hotspot") x, y = offset.data().decode('utf-8').split() self.btn.move(position - QPoint(int(x), int(y))) e.setDropAction(Qt.MoveAction) e.accept()
def dropEvent(self, event: QtGui.QDropEvent) -> None: self.manager.widget_manager.dragged_obj = None self.manager.grid_manager.drop_magnet_lines() self.manager.grid_manager.grid.clear_special_lines() event.accept() self.manager.widget_manager.set_dor(NONE) [ widget.hide_size_or_pos_label() for widget in self.manager.widget_manager.get_all_widgets() ] self.update()
def __process_event(self, file: Path, event: QtGui.QDropEvent) -> None: logger.debug(f"Processing file drag event: {file.name}") if "grades" in file.name and self.objectName() == INPUT_TEAMS_FRAME: logger.debug("File met 'grades' criteria") event.accept() elif "Student Portal" in file.name and self.objectName( ) == INPUT_STUDENT_FRAME: logger.debug("File met 'student logins' criteria") event.accept() else: logger.debug("File did not meet any criteria -- rejecting") event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasFormat('application/hotspot'): position = event.pos() offset = event.mimeData().data('application/hotspot') x, y = offset.data().decode('utf-8').split() self.btn.move(position - QPoint(int(x), int(y))) event.setDropAction(Qt.MoveAction) event.accept() else: event.ignore()
def dropEvent(self, event: QtGui.QDropEvent) -> None: if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() for url in event.mimeData().urls(): # print(url.toLocalFile()) self.dropped.emit(url.toLocalFile()) listItem = QListWidgetItem() fname = os.path.basename(url.toLocalFile()) listItem.setText(fname) listItem.setIcon( QtGui.QIcon( os.path.abspath('view/icon/document-list.png'))) self.addItem(listItem) else: event.ignore()
def dropEvent(self, event: QDropEvent) -> None: event.accept() if isinstance(event.source(), QListWidget): item = event.source().currentItem() if isinstance(item, ToolBoxItem): obj = item.getNewCustomClass() self.scene().addItem(obj) objRect = obj.boundingRect().center() position = QPoint(event.pos().x() - objRect.x(), event.pos().y() - objRect.y()) obj.setPos(self.mapToScene(position)) elif isinstance(item, ResourcesItem): self.itemAt(event.pos()).recieveDrop(item)
def dropEvent(self, a0: QDropEvent) -> None: if a0.source() == self or self.indexTabToDrag < 0 or not isinstance( a0.source(), TabBar): a0.accept() return a0.setDropAction(Qt.MoveAction) a0.accept() insertAfter = self.tabAt(a0.pos()) try: tab = a0.source().parentWidget().widget(self.indexTabToDrag) packItem = QModelIndex(tab.packItem) index = self.parentWidget().openItemInNewTab(packItem) a0.source().tabCloseRequested.emit(self.indexTabToDrag) except AttributeError as e: print("Error occured while drop Event:", e) else: if insertAfter and insertAfter >= 0: self.moveTab(index, insertAfter + 1) TabBar.indexTabToDrag = -1
def dropEvent(self, event: QtGui.QDropEvent) -> None: """Handles the drop event and loads the image_name into the label. Parameters ---------- event: QDropEvent The identified event """ if event.mimeData().hasImage: event.setDropAction(Qt.CopyAction) self.image = event.mimeData().urls()[0].toLocalFile() x = self.width() y = self.height() im = QPixmap(self.image).scaled( x, y) # , aspectRatioMode=Qt.KeepAspectRatio) im.save(os.getcwd() + "/tmp.jpg") self.image = (os.getcwd() + "/tmp.jpg") self.setPixmap(im) # self.setPixmap(QPixmap(self.image)) self.setStyleSheet("") event.accept() else: event.ignore()
def dropEvent(self, a0: QtGui.QDropEvent): position = a0.pos() self.button1.move(position) a0.setDropAction(Qt.MoveAction) a0.accept()
def dropEvent(self, event: QDropEvent) -> None: filename = event.mimeData().urls()[0].toLocalFile() self.file_opener(filename) event.accept()
def dropEvent(self, event: QDropEvent) -> None: filename = event.mimeData().urls()[0].toLocalFile() self.cutter.loadMedia(filename) event.accept()
def dropEvent(self, e: QtGui.QDropEvent): position = e.pos() self.button.move(position) e.setDropAction(Qt.MoveAction) e.accept()
def dropEvent(self, event: QDropEvent) -> None: if event.mimeData().hasUrls(): urls = event.mimeData().urls() filepath = urls[0].toLocalFile() self.loadFile(filepath) event.accept()