コード例 #1
0
ファイル: qt_layerlist.py プロジェクト: samuelorion/napari
    def mouseMoveEvent(self, event):
        """Drag and drop layer with mouse movement.

        Parameters
        ----------
        event : qtpy.QtCore.QEvent
            Event from the Qt context.
        """
        position = np.array([event.pos().x(), event.pos().y()])
        distance = np.linalg.norm(position - self._drag_start_position)
        if (distance < QApplication.startDragDistance()
                or self._drag_name is None):
            return
        mimeData = QMimeData()
        mimeData.setText(self._drag_name)
        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.exec_()
        # Check if dragged layer still exists or was deleted during drag
        names = [layer.name for layer in self.layers]
        dragged_layer_exists = self._drag_name in names
        if self._drag_name is not None and dragged_layer_exists:
            index = self.layers.index(self._drag_name)
            layer = self.layers[index]
            self._ensure_visible(layer)
コード例 #2
0
    def mouseMoveEvent(self, event):
        distance = (event.pos() - self.dragStartPosition).manhattanLength()
        if distance < QApplication.startDragDistance():
            return
        mimeData = QMimeData()
        if not self.layer.selected:
            name = self.layer.name
        else:
            name = ''
            for layer in self.layer.viewer.layers:
                if layer.selected:
                    name = layer.name + '; ' + name
            name = name[:-2]
        mimeData.setText(name)
        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        dropAction = drag.exec_(Qt.MoveAction | Qt.CopyAction)

        if dropAction == Qt.CopyAction:
            if not self.layer.selected:
                index = self.layer.viewer.layers.index(self.layer)
                self.layer.viewer.layers.pop(index)
            else:
                self.layer.viewer.layers.remove_selected()
コード例 #3
0
 def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent):
     drag = QDrag(event.widget())
     mime = QMimeData()
     mime.setText(str(self.id))
     drag.setMimeData(mime)
     # self.setCursor(Qt.ClosedHandCursor)
     drag.exec_()
コード例 #4
0
    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)
コード例 #5
0
ファイル: reactions_list.py プロジェクト: rmahadevan12/CNApy
 def mouseMoveEvent(self, _event):
     item = self.currentItem()
     if item is not None:
         reaction: cobra.Reaction = item.data(3, 0)
         mime_data = QMimeData()
         mime_data.setText(reaction.id)
         drag = QDrag(self)
         drag.setMimeData(mime_data)
         drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction)
コード例 #6
0
    def eventFilter(self, source, event):
        if isinstance(source, QListView):
            if event.type() == QEvent.KeyPress and event.key() == Qt.Key_C and event.modifiers() & Qt.ControlModifier:
                rows = sorted(source.selectionModel().selectedRows())
                data = QMimeData()
                data.setText("\n".join(str(source.model().data(row)) for row in rows))

                QApplication.instance().clipboard().setMimeData(data)

                return True

        return False
コード例 #7
0
 def mouseMoveEvent(self, event):
     position = np.array([event.pos().x(), event.pos().y()])
     distance = np.linalg.norm(position - self.drag_start_position)
     if (distance < QApplication.startDragDistance()
             or self.drag_name is None):
         return
     mimeData = QMimeData()
     mimeData.setText(self.drag_name)
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     drag.setHotSpot(event.pos() - self.rect().topLeft())
     dropAction = drag.exec_()
コード例 #8
0
    def mimeData(self, indexes):
        # type: (List[QModelIndex])
        """Function used for preparing tree data for drag+drop. Preserves the hierarchy of the dropped item.

        """
        mimedata = QMimeData()
        item = self.getItem(indexes[0])

        # track representations and hierarchal relationships
        hierarchy_builder = MimeHierarchyTool()
        hierarchy_rep = hierarchy_builder.build_config(item)

        data = json.dumps(hierarchy_rep)
        mimedata.setText(data)
        return mimedata
コード例 #9
0
ファイル: qt_layerlist.py プロジェクト: xies/napari
 def mouseMoveEvent(self, event):
     position = np.array([event.pos().x(), event.pos().y()])
     distance = np.linalg.norm(position - self.drag_start_position)
     if (distance < QApplication.startDragDistance()
             or self.drag_name is None):
         return
     mimeData = QMimeData()
     mimeData.setText(self.drag_name)
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     drag.setHotSpot(event.pos() - self.rect().topLeft())
     drag.exec_()
     if self.drag_name is not None:
         index = self.layers.index(self.drag_name)
         layer = self.layers[index]
         self._ensure_visible(layer)
コード例 #10
0
 def mimeData(self, indexes):
     mimedata = QMimeData()
     mimedata.setText(str(indexes[0].row()))
     return mimedata