示例#1
0
    def mouseMoveEvent(self, event):
        if not (event.buttons() & Qt.LeftButton):
            return
        if (event.pos() - self.drag_start_position).manhattanLength() < 2:
            global correction
            correction = event.pos() - self.drag_start_position
        drag = QDrag(self)
        mimedata = QMimeData()
        mimedata.setImageData(self.pixmap().toImage())  # изображение в качестве данных, которое потом можно будет дропнуть

        drag.setMimeData(mimedata)
        #t = QTransform().rotate(ui.angle)
        pixmap = QPixmap(drag.mimeData().imageData())  # POGU
        pixmap = pixmap.scaled(self.size())

        painter = QPainter(pixmap)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setStyleSheet("background:transparent;")
        painter.drawPixmap(self.rect(), self.grab())
        painter.end()

        drag.setPixmap(pixmap)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.exec_(Qt.CopyAction | Qt.MoveAction)
示例#2
0
    def mouseMoveEvent(self, event):
        # перетягивание на левую кнопку мыши + установка минимальной длины для начала перетягивания (4 пикселя)
        if not (event.buttons() & Qt.LeftButton):
            return
        if (event.pos() - self.drag_start_position).manhattanLength() < 2:
            global correction
            correction = event.pos() - self.drag_start_position
        drag = QDrag(self)

        # QMimeData() - класс для хранения данных любого типа во время перетягивания
        mimedata = QMimeData()

        mimedata.setImageData(self.pixmap().toImage())  # изображение в качестве данных, которое потом можно будет дропнуть

        drag.setMimeData(mimedata)

        t = QTransform().rotate(ui.angle)
        pixmap = QPixmap(ui.image_raw_main.transformed(t))  #Все исправление в 3 строчки
        pixmap = pixmap.scaled(self.size())


        painter = QPainter(pixmap)

        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setStyleSheet("background:transparent;")

        painter.drawPixmap(self.rect(), self.grab())
        painter.end()

        drag.setPixmap(pixmap)  #именно здесь происходит прорисовка изображения, работает и без QPainter, но
        #Но он помогает восстановить качество картинки, по сути перерисовывая новую картинку поверх старой,
        #повреждено из за метода scaled. Картинка из этой строчки по сути является фоном, и именно в ней и была проблема
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.exec_(Qt.CopyAction | Qt.MoveAction)
示例#3
0
 def mouseMoveEvent(self, event: QMouseEvent) -> None:
     if event.buttons() == Qt.LeftButton:
         mimeData = QMimeData()
         mimeData.setText(str(self.idx))
         drag = QDrag(self)
         drag.setMimeData(mimeData)
         drag.exec_(Qt.MoveAction)
示例#4
0
 def mouseMoveEvent(self, event):
     """
     Protected method to handle mouse move events.
     
     @param event reference to the mouse move event (QMouseEvent)
     """
     if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \
        (event.pos() - self.__dragStartPos).manhattanLength() > \
             QApplication.startDragDistance():
         drag = QDrag(self)
         mimeData = QMimeData()
         index = self.tabAt(event.pos())
         mimeData.setText(self.tabText(index))
         mimeData.setData("action", b"tab-reordering")
         mimeData.setData("tabbar-id", str(id(self)).encode("utf-8"))
         mimeData.setData(
             "source-index",
             QByteArray.number(self.tabAt(self.__dragStartPos)))
         mimeData.setData("tabwidget-id",
                          str(id(self.parentWidget())).encode("utf-8"))
         drag.setMimeData(mimeData)
         if event.modifiers() == Qt.KeyboardModifiers(Qt.ShiftModifier):
             drag.exec_(Qt.DropActions(Qt.CopyAction))
         elif event.modifiers() == Qt.KeyboardModifiers(Qt.NoModifier):
             drag.exec_(Qt.DropActions(Qt.MoveAction))
     super(TabBar, self).mouseMoveEvent(event)
示例#5
0
    def __onDragStarted(self, index):
        desc = qunwrap(index.data(QtWidgetRegistry.WIDGET_DESC_ROLE))
        icon = qunwrap(index.data(Qt.DecorationRole))

        drag_data = QMimeData()
        drag_data.setData(
            "application/vnv.orange-canvas.registry.qualified-name",
            desc.qualified_name)
        drag = QDrag(self)
        drag.setPixmap(icon.pixmap(38))
        drag.setMimeData(drag_data)

        # TODO: Should animate (accept) hide.
        self.hide()

        # When a drag is started and the menu hidden the item's tool tip
        # can still show for a short time UNDER the cursor preventing a
        # drop.
        viewport = self.__menu.view().viewport()
        filter = ToolTipEventFilter()
        viewport.installEventFilter(filter)

        drag.exec_(Qt.CopyAction)

        viewport.removeEventFilter(filter)
示例#6
0
    def startDrag(self, event):
        """ Override startDrag method to display custom icon """

        # Get image of selected item
        selected = self.selectedIndexes()

        # Start drag operation
        drag = QDrag(self)
        drag.setMimeData(self.model.mimeData(selected))
        icon = self.model.data(selected[0], Qt.DecorationRole)
        drag.setPixmap(
            icon.pixmap(QSize(self.drag_item_size, self.drag_item_size)))
        drag.setHotSpot(
            QPoint(self.drag_item_size / 2, self.drag_item_size / 2))

        # Create emoji file before drag starts
        data = json.loads(drag.mimeData().text())
        file = self.add_file(data[0])

        # Update mimedata for emoji
        data = QMimeData()
        data.setText(json.dumps([file.id]))
        data.setHtml("clip")
        drag.setMimeData(data)

        # Start drag
        drag.exec_()
示例#7
0
 def mouseMoveEvent(self, event):
     """
     Protected method to handle mouse move events.
     
     @param event reference to the mouse move event (QMouseEvent)
     """
     if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \
        (event.pos() - self.__dragStartPos).manhattanLength() > \
             QApplication.startDragDistance():
         drag = QDrag(self)
         mimeData = QMimeData()
         index = self.tabAt(event.pos())
         mimeData.setText(self.tabText(index))
         mimeData.setData("action", b"tab-reordering")
         mimeData.setData("tabbar-id", str(id(self)).encode("utf-8"))
         mimeData.setData(
             "source-index",
             QByteArray.number(self.tabAt(self.__dragStartPos)))
         mimeData.setData(
             "tabwidget-id",
             str(id(self.parentWidget())).encode("utf-8"))
         drag.setMimeData(mimeData)
         if event.modifiers() == Qt.KeyboardModifiers(Qt.ShiftModifier):
             drag.exec_(Qt.DropActions(Qt.CopyAction))
         elif event.modifiers() == Qt.KeyboardModifiers(Qt.NoModifier):
             drag.exec_(Qt.DropActions(Qt.MoveAction))
     super(TabBar, self).mouseMoveEvent(event)
示例#8
0
 def mouseMoveEvent(self, event):
     drag = QDrag(self)
     mimedata = QMimeData()
     current_item_test = self.currentItem().text()
     mimedata.setText(current_item_test)
     drag.setMimeData(mimedata)
     drag.exec_()
示例#9
0
    def mouseMoveEvent(self, event):
        if QLineF(QPointF(event.screenPos()), QPointF(event.buttonDownScreenPos(Qt.LeftButton))).length() < QApplication.startDragDistance():
            return

        drag = QDrag(event.widget())
        mime = QMimeData()
        drag.setMimeData(mime)

        ColorItem.n += 1
        if ColorItem.n > 2 and qrand() % 3 == 0:
            image = QImage(':/images/head.png')
            mime.setImageData(image)
            drag.setPixmap(QPixmap.fromImage(image).scaled(30,40))
            drag.setHotSpot(QPoint(15, 30))
        else:
            mime.setColorData(self.color)
            mime.setText("#%02x%02x%02x" % (self.color.red(), self.color.green(), self.color.blue()))

            pixmap = QPixmap(34, 34)
            pixmap.fill(Qt.white)

            painter = QPainter(pixmap)
            painter.translate(15, 15)
            painter.setRenderHint(QPainter.Antialiasing)
            self.paint(painter, None, None)
            painter.end()

            pixmap.setMask(pixmap.createHeuristicMask())

            drag.setPixmap(pixmap)
            drag.setHotSpot(QPoint(15, 20))

        drag.exec_()
        self.setCursor(Qt.OpenHandCursor)
示例#10
0
    def mouseMoveEvent(self, event):
        if not (event.buttons() & Qt.Qt.LeftButton):
            return
        if (event.pos() - self.drag_start_position
            ).manhattanLength() < QApplication.startDragDistance():
            return
        drag = QDrag(self)
        mimedata = QMimeData()
        row = self.indexAt(self.drag_start_position).row()
        collumn = self.indexAt(self.drag_start_position).column()
        mimedata.setText(self.item(row, collumn).text())
        drag.setMimeData(mimedata)
        item = QLabel(self.item(row, collumn).text())
        item.adjustSize()

        # item.setFixedSize(100,50)
        pixmap = QtWidgets.QWidget.grab(item)
        # pixmap = QPixmap(self.size())

        painter = QPainter(pixmap)
        painter.drawPixmap(item.rect(), item.grab())
        painter.end()
        drag.setPixmap(pixmap)
        # drag.setHotSpot(event.pos())
        drag.setPixmap(pixmap)
        # shift the Pixmap so that it coincides with the cursor position
        # drag.setHotSpot(event.pos())
        drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction)
示例#11
0
 def _start_drag_files(self, action):
     drag = QDrag(self)
     drag.setPixmap(QPixmap(":/image/List.png"))
     indexes = self.ui.filesList.selectionModel().selectedRows()
     mime_data = self.ui.filesList.model().mimeData(indexes)
     drag.setMimeData(mime_data)
     drag.exec_(Qt.CopyAction)
示例#12
0
    def mouseMoveEvent(self, event):
        if self.dialog.removable:
            return

        if not (event.buttons() & Qt.LeftButton):
            return

        if (event.pos() - self.drag_start_position).manhattanLength() < QApplication.startDragDistance():
            return

        drag = QDrag(self)
        mimedata = QMimeData()
        mimedata.setText(self.text())

        if self.pixmap() is None:
            return

        mimedata.setImageData(self.pixmap().toImage())

        drag.setMimeData(mimedata)
        pixmap = QPixmap(self.size())
        self.image = pixmap
        painter = QPainter(pixmap)
        painter.drawPixmap(self.rect(), self.grab())
        painter.end()
        drag.setPixmap(pixmap)
        drag.setHotSpot(event.pos())
        print("Moving")
        drag.exec_(Qt.MoveAction)
示例#13
0
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None:
        if e.buttons() != Qt.LeftButton:
            return None
        #根据currentIndex获取数据行的名称
        mimeData = QMimeData()
        currentRow = self.currentIndex().row()
        index = self.model().index(currentRow, 0)
        itemName = self.model().data(index)
        mimeData.setText('{}:{}:{}'.format(self.type, self.address, itemName))

        #绘制拖动时的图像
        width = self.columnWidth(0)
        height = self.rowHeight(currentRow)
        pixmap = QPixmap(width, height)
        paint = QPainter()
        paint.begin(pixmap)
        paint.fillRect(pixmap.rect(), QColor(Qt.white))
        paint.drawRect(0, 0, width - 1, height - 1)
        paint.drawText(pixmap.rect(), Qt.AlignCenter, itemName)
        paint.end()

        #设定拖动项的数据和图标
        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.exec_(Qt.MoveAction)
        super().mouseMoveEvent(e)
    def mouseMoveEvent(self, event):
        if not (event.buttons() & Qt.LeftButton):
            return None

        manhattanLength = event.pos()
        manhattanLength -= self.drag_start_position
        manhattanLength = manhattanLength.manhattanLength()
        if manhattanLength < QApplication.startDragDistance():
            return None

        drag = QDrag(self)
        mimedata = QMimeData()
        message = json.dumps({
            "codigo": self.code,
            "estado": self.state,
            "semestre actual": self.semester
        })
        mimedata.setText(message)

        drag.setMimeData(mimedata)

        pixmap = QPixmap(QSize(subject_width, self.height))
        painter = QPainter(pixmap)
        painter.drawPixmap(0, 0, subject_width, self.height, self.grab())
        painter.end()
        pixmap = pixmap.scaled(QSize(subject_width, self.height))
        drag.setPixmap(pixmap)
        drag.setHotSpot(event.pos())
        drag.exec_(Qt.CopyAction | Qt.MoveAction)
示例#15
0
    def startDrag(dragSource,
                  supportedActions,
                  mimeData,
                  pixmap=None,
                  pixmapCursorOffset=None):
        """ Helper to create a QDrag and start a drag with the dragData as parameter.

			Args:
				dragSource: QObject
				supportedActions: Qt.DropActions
				mimeData: QMimeData
				pixmap: QPixmap
				pixmapCursorOffset: QPoint
	    """
        drag = QDrag(dragSource)
        drag.setMimeData(mimeData)
        tooltip = CDragTooltip.get()
        tooltip.startDrag()

        if mimeData and pixmap:
            tooltip.setDefaultPixmap(pixmap)
            if pixmapCursorOffset != None:
                tooltip.setCursorOffset(pixmapCursorOffset)

        CDragDropData.signalDragStart(mimeData)
        drag.exec_(supportedActions)
        CDragDropData.signalDragEnd(mimeData)

        tooltip.stopDrag()
示例#16
0
 def mousePressEvent(self, event):
     mime = QMimeData()
     itemData = QByteArray()
     mime.setData('application/x-dnditemdata', itemData)
     drag = QDrag(self)
     drag.setMimeData(mime)
     drag.exec_(Qt.MoveAction)
示例#17
0
    def startDrag(self, event):
        """ Override startDrag method to display custom icon """

        # Get first column indexes for all selected rows
        selected = self.selectionModel().selectedRows(0)

        # Get image of current item
        current = self.selectionModel().currentIndex()
        if not current.isValid() and selected:
            current = selected[0]

        if not current.isValid():
            # We can't find anything to drag
            log.warning("No draggable items found in model!")
            return False

        # Get icon from column 0 on same row as current item
        icon = current.sibling(current.row(), 0).data(Qt.DecorationRole)

        # Start drag operation
        drag = QDrag(self)
        drag.setMimeData(self.model().mimeData(selected))
        drag.setPixmap(icon.pixmap(QSize(self.drag_item_size, self.drag_item_size)))
        drag.setHotSpot(QPoint(self.drag_item_size / 2, self.drag_item_size / 2))
        drag.exec_()
示例#18
0
    def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None:
        if e.buttons() != Qt.LeftButton:
            return None
        #根据currentIndex获取数据行的名称
        mimeData = QMimeData()
        mimeData.setText('{}:{}:{}'.format(self.type, self.address,
                                           self.text()))

        #绘制拖动时的图像
        pixmap = QPixmap(self.size())

        paint = QPainter()
        paint.begin(pixmap)
        # paint.fillRect(pixmap.rect(),QColor(Qt.white))
        # paint.drawRect(pixmap.rect())
        paint.drawPixmap(self.rect(), self.grab())
        paint.drawText(pixmap.rect(), Qt.AlignCenter, self.text())
        paint.end()

        #设定拖动项的数据和图标
        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.exec_(Qt.MoveAction)
        super().mouseMoveEvent(e)
示例#19
0
    def startDrag(self):
        self.mimeData = MimeData()
        self.mimeData.dataRequested.connect(self.createData, Qt.DirectConnection)

        drag = QDrag(self)
        drag.setMimeData(self.mimeData)
        drag.setPixmap(QPixmap(':/images/drag.png'))
        drag.exec_(Qt.CopyAction)
示例#20
0
 def mouseMoveEvent(self, e):  # 버튼 위에서 마우스가 움직이고 있을때 발생하는 이벤트
     # if e.buttons() != Qt.RightButton: #마우스 오른쪽 버튼이 눌린 상태가 아니면 이벤트를 종료
     if e.buttons() != Qt.LeftButton:  # 마우스 오른쪽 버튼이 눌린 상태가 아니면 이벤트를 종료
         return
     mimeData = QMimeData()  # 다양한 멀티미디어 데이터를 다룬다
     drag = QDrag(self) # 드레그 객체 생성
     drag.setMimeData(mimeData)
     drag.exec_(Qt.MoveAction)  # 객체 활성화
 def mouseMoveEvent(self, e):
     mime_data = QMimeData()
     data = "{}_{}_{}".format(self.bobine.code, self.bobine.pose,
                              self.bobine.index)
     mime_data.setText(data)
     drag = QDrag(self)
     drag.setMimeData(mime_data)
     drag.exec_(Qt.MoveAction)
示例#22
0
文件: board.py 项目: janza/kandoman
    def mouseMoveEvent(self, event):
        mime_data = QMimeData()
        mime_data.setText(self.text)

        drag = QDrag(self)
        drag.setMimeData(mime_data)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.exec_()
示例#23
0
    def startDrag(self):
        self.mimeData = MimeData()
        self.mimeData.dataRequested.connect(self.createData, Qt.DirectConnection)

        drag = QDrag(self)
        drag.setMimeData(self.mimeData)
        drag.setPixmap(QPixmap(':/images/drag.png'))
        drag.exec_(Qt.CopyAction)
示例#24
0
文件: tz.py 项目: xwlan/QUANTAXIS
 def mouseMoveEvent(self, e):
     # if e.buttons() != Qt.RightButton:
     #     return
     mimeData = QMimeData()
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     drag.setHotSpot(e.pos() - self.rect().topLeft())
     drag.exec_(Qt.MoveAction)
示例#25
0
def mouseMove(event, parent):
    """ Function for Mouse Move Event, used by original blocks and partially by generated blocks"""
    mimeData = QMimeData()

    drag = QDrag(parent)
    drag.setMimeData(mimeData)
    drag.setHotSpot(event.pos())

    drag.exec_(Qt.MoveAction)
示例#26
0
    def mouseMoveEvent(self, e):  ##버튼 위에서 마우스가 움직일때 발생하는 이벤트
        if e.buttons() != Qt.RightButton:
            return

        mimeData = QMimeData()  ## 다양한 멀티데이터를 다를 수 있음?

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.exec_(Qt.MoveAction)
示例#27
0
    def StartDrag(self):
        drag = QDrag(self)
        data = QMimeData()
        data.setText(None)

        data.setUrls([QUrl.fromLocalFile(self.imgFile)])
        drag.setMimeData(data)
        drag.setPixmap(QPixmap(paths['imagePath'] + 'dnd2.png'))
        drag.exec_()
 def mouseMoveEvent(self, event):
     if not self.movible:
         return
     # Drag and Drop
     drag = QDrag(self)
     mimedata = QMimeData()
     drag.setMimeData(mimedata)
     drag.setPixmap(self.grab())
     drag.setHotSpot(event.pos())
     drag.exec_(Qt.CopyAction | Qt.MoveAction)
示例#29
0
 def mouseMoveEvent(self, e):
     super(ListWidget, self).mouseMoveEvent(e)
     mime_data = QMimeData()
     if self.itemAt(e.pos()) == None:
         return
     else:
         mime_data.setText(self.itemAt(e.pos()).text())
         drag = QDrag(self)
         drag.setMimeData(mime_data)
         drag.exec_(Qt.CopyAction)
示例#30
0
 def mouseMoveEvent(self, event: QMouseEvent) -> None:
     super().mouseMoveEvent(event)
     if event.buttons() == Qt.RightButton:
         mime = QMimeData()
         drag = QDrag(self.parent())
         drag.setMimeData(mime)
         drag.setHotSpot(event.pos())
         drag.exec_(Qt.MoveAction)
     else:
         self.change_parent_mouse_pos(event)
    def mouseMoveEvent(self, e: QMouseEvent):
        # 왼쪽 버튼은 클릭용이므로 오른쪽 버튼 입력 허용
        if e.buttons() != Qt.RightButton:
            return

        mime_data = QMimeData()  # 데이터 전송을 위한 MIME 객체 선언
        drag = QDrag(self)  # QDrag는 오직 드래그앤드랍에서만 사용
        drag.setMimeData(mime_data)

        drag.exec_(Qt.MoveAction)
示例#32
0
	def newComponentButtonMousePress(self, componentType, event):
		self.tool = Tool.NewComponent
		self.mouseState = MouseState.Dragging
		self.newComponentType = componentType
		
		newComponentDrag = QDrag(self.view)
		newComponentDrag.setHotSpot(QPoint(self.view.ui.circuitDiagram.blockSideLength / 2, self.view.ui.circuitDiagram.blockSideLength / 2))
		newComponentDrag.setMimeData(QMimeData())
		newComponentDrag.setPixmap(QPixmap(self.view.ui.circuitDiagram.componentTypeToImageName(componentType)).scaled(self.view.ui.circuitDiagram.blockSideLength, self.view.ui.circuitDiagram.blockSideLength))
		newComponentDrag.exec_(Qt.MoveAction)
示例#33
0
def dragFile(widget, filename, icon=None, dropactions=Qt.CopyAction):
    """Starts dragging the given local file from the widget."""
    if icon is None or icon.isNull():
        icon = QFileIconProvider().icon(QFileInfo(filename))
    drag = QDrag(widget)
    data = QMimeData()
    data.setUrls([QUrl.fromLocalFile(filename)])
    drag.setMimeData(data)
    drag.setPixmap(icon.pixmap(32))
    drag.exec_(dropactions)
示例#34
0
 def __dragSnapshot(self):
     """
     Private slot handling the dragging of the preview picture.
     """
     drag = QDrag(self)
     mimeData = QMimeData()
     mimeData.setImageData(self.__snapshot)
     drag.setMimeData(mimeData)
     drag.setPixmap(self.preview.pixmap())
     drag.exec_(Qt.CopyAction)
示例#35
0
def dragFile(widget, filename, icon=None, dropactions=Qt.CopyAction):
    """Starts dragging the given local file from the widget."""
    if icon is None or icon.isNull():
        icon = QFileIconProvider().icon(QFileInfo(filename))
    drag = QDrag(widget)
    data = QMimeData()
    data.setUrls([QUrl.fromLocalFile(filename)])
    drag.setMimeData(data)
    drag.setPixmap(icon.pixmap(32))
    drag.exec_(dropactions)
示例#36
0
 def __dragSnapshot(self):
     """
     Private slot handling the dragging of the preview picture.
     """
     drag = QDrag(self)
     mimeData = QMimeData()
     mimeData.setImageData(self.__snapshot)
     drag.setMimeData(mimeData)
     drag.setPixmap(self.preview.pixmap())
     drag.exec_(Qt.CopyAction)
示例#37
0
 def mouseMoveEvent(self, e):
     modifiers = QApplication.keyboardModifiers()
     if modifiers == Qt.ControlModifier:
         mimeData = QMimeData()
         drag = QDrag(e.widget())
         mimeData.setText("node")
         drag.setMimeData(mimeData)
         drag.exec_(Qt.MoveAction)
         self.ungrabMouse()
     if self.edgeInConstruction != None:
         self.edgeInConstruction.obsUpdate(e.scenePos())
示例#38
0
    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.drag_started.emit(self.mapToParent(event.pos()))
            drag = QDrag(self)
            mimeData = QMimeData()
            mimeData.setText("Move Signal")
            pixmap = QPixmap(self.rect().size())
            self.render(pixmap, QPoint(), QRegion(self.rect()))
            drag.setPixmap(pixmap)

            drag.setMimeData(mimeData)

            drag.exec_()
示例#39
0
    def mouseMoveEvent(self, event):
        if event.buttons() & Qt.LeftButton:
            index = self._findEventIndex(event)
            if self._maybeDragPosition is not None:
                if ((event.pos() - self._maybeDragPosition).manhattanLength()
                        < QApplication.startDragDistance()):
                        return
                # TODO: needs ordering or not?
                glyphList = " ".join(
                    glyph.name for glyph in self.getSelectedGlyphs())
                drag = QDrag(self)
                mimeData = QMimeData()
                mimeData.setText(glyphList)
                drag.setMimeData(mimeData)

                drag.exec_()
                self._maybeDragPosition = None
                event.accept()
                return
            if index == self._lastSelectedCell:
                return

            modifiers = event.modifiers()
            event.accept()
            if index is None:
                if not (modifiers & Qt.ControlModifier or
                        modifiers & Qt.ShiftModifier):
                    self.selection = set()
                self._lastSelectedCell = index
                return
            if modifiers & Qt.ControlModifier:
                if index in self._selection and index in self._oldSelection:
                    selection = self.selection
                    selection.remove(index)
                    self.selection = selection
                elif (index not in self._selection and
                      index not in self._oldSelection):
                    selection = self.selection
                    selection.add(index)
                    self.selection = selection
            elif modifiers & Qt.ShiftModifier:
                newSelection = self._linearSelection(index)
                if newSelection is not None:
                    self.selection = newSelection
            else:
                self.selection = {index}
            self.lastSelectedCell = index
        else:
            super(GlyphCollectionWidget, self).mouseMoveEvent(event)
示例#40
0
    def maybeExecuteDrag(self, event):
        if self._maybeDragPosition is None:
            return False
        if (event.localPos() - self._maybeDragPosition).manhattanLength() \
                < QApplication.startDragDistance():
            return False

        drag = QDrag(self)
        glyphs = self.glyphsForIndexes(self.selection())
        mimeData = GlyphsMimeData()
        mimeData.setGlyphs(glyphs)
        drag.setMimeData(mimeData)
        drag.exec_()
        self._maybeDragPosition = None
        return True
示例#41
0
 def mouseMoveEvent(self, event):
     super().mouseMoveEvent(event)
     if (
             event.buttons() == Qt.LeftButton and 
             self.left_start is not None and 
             (event.globalPos() - self.left_start).manhattanLength() >=
                 QApplication.startDragDistance()
             ):
         self.drag_start.emit()
         mime = QMimeData()
         drag = QDrag(self)
         drag.setMimeData(mime)
         self.left_start = None
         drag.exec_(Qt.MoveAction)
         self.drag_stop.emit()
示例#42
0
    def mousePressEvent(self, event):
        child = self.childAt(event.pos())
        if not child:
            return

        pixmap = QPixmap(child.pixmap())

        itemData = QByteArray()
        dataStream = QDataStream(itemData, QIODevice.WriteOnly)
        dataStream << pixmap << QPoint(event.pos() - child.pos())

        mimeData = QMimeData()
        mimeData.setData('application/x-dnditemdata', itemData)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.setHotSpot(event.pos() - child.pos())

        tempPixmap = QPixmap(pixmap)
        painter = QPainter()
        painter.begin(tempPixmap)
        painter.fillRect(pixmap.rect(), QColor(127, 127, 127, 127))
        painter.end()

        child.setPixmap(tempPixmap)

        if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
            child.close()
        else:
            child.show()
            child.setPixmap(pixmap)
示例#43
0
 def startDrag(self):
     image = self.image()
     data = QMimeData()
     data.setImageData(image)
     drag = QDrag(self)
     drag.setMimeData(data)
     if max(image.width(), image.height()) > 256:
         image = image.scaled(QSize(256, 256), Qt.KeepAspectRatio, Qt.SmoothTransformation)
     p = QPainter()
     p.begin(image)
     p.setCompositionMode(QPainter.CompositionMode_DestinationIn)
     p.fillRect(image.rect(), QColor(0, 0, 0, 160))
     p.end()
     pixmap = QPixmap.fromImage(image)
     drag.setPixmap(pixmap)
     drag.setHotSpot(pixmap.rect().center())
     drag.exec_(Qt.CopyAction)
示例#44
0
 def mouseMoveEvent(self, e):
     if e.buttons() != Qt.RightButton:
         return
     mimeData = QMimeData()
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     drag.setHotSpot(e.pos() - self.rect().topLeft())
     dropAction = drag.exec_(Qt.MoveAction)
示例#45
0
 def mouseMoveEvent(self, event):
     """
     Protected method to handle mouse move events.
     
     @param event reference to the mouse move event (QMouseEvent)
     """
     if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \
        (event.pos() - self.__dragStartPos).manhattanLength() > \
             QApplication.startDragDistance():
         drag = QDrag(self)
         mimeData = QMimeData()
         index = self.tabAt(event.pos())
         mimeData.setText(self.tabText(index))
         mimeData.setData("action", "tab-reordering")
         mimeData.setData("tabbar-id", str(id(self)))
         drag.setMimeData(mimeData)
         drag.exec_()
     E5WheelTabBar.mouseMoveEvent(self, event)
示例#46
0
 def mouseMoveEvent(self, e):
     '''
     Luo ratapalsata Mime tiedot, kun sitä liikuttaa
     '''
     mimeData = QMimeData()
     drag = QDrag(e.widget())
     drag.setMimeData(mimeData)
     self.scene.valittu = self
     dropAction = drag.exec_(Qt.MoveAction)
示例#47
0
    def mouseMoveEvent(self, event):
        if (event.buttons() == Qt.LeftButton and
                (event.modifiers() == Qt.ControlModifier or
                 event.modifiers() == Qt.ShiftModifier)):
            mime_data = QMimeData()
            mime_data.setText(PageWidget.DRAG_MAGIC)

            drag = QDrag(self)
            drag.setMimeData(mime_data)
            drag.setPixmap(self.grab(self.rect()))

            if event.modifiers() == Qt.ControlModifier:
                drag.exec_(Qt.MoveAction)
            else:
                drag.exec_(Qt.CopyAction)

            event.accept()
        else:
            event.ignore()
示例#48
0
 def mousePressEvent(self, me):
     if me.button() == Qt.LeftButton:
         child = self.find_label()
         if child != None:
             mime_data = QMimeData()
             mime_data.setData('text/plain', child.get_text())
             drag = QDrag(self)
             drag.setMimeData(mime_data)
             #drag.setHotSpot(child.pos())
             drag_action = drag.exec_(Qt.CopyAction | Qt.MoveAction)
示例#49
0
    def mouseMoveEvent(self, e):
        if e.buttons() != Qt.RightButton:
            return

        globalPos = self.mapToGlobal(e.pos())
        tabBar = self.tabBar()
        posInTab = tabBar.mapFromGlobal(globalPos)
        self.indexTab = tabBar.tabAt(e.pos())
        tabRect = tabBar.tabRect(self.indexTab)

        pixmap = QPixmap(tabRect.size())
        tabBar.render(pixmap, QPoint(), QRegion(tabRect))
        mimeData = QMimeData()
        drag = QDrag(tabBar)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        cursor = QCursor(Qt.OpenHandCursor)
        drag.setHotSpot(e.pos() - posInTab)
        drag.setDragCursor(cursor.pixmap(), Qt.MoveAction)
        drag.exec_(Qt.MoveAction)
示例#50
0
 def mouseMoveEvent(self, evt):
     """
     Protected method to handle mouse move events.
     
     @param evt reference to the mouse event (QMouseEvent)
     """
     if evt.button() == Qt.LeftButton and \
        (evt.pos() - self.__dragStartPos).manhattanLength() > \
             QApplication.startDragDistance() and \
        self.__browser is not None:
         drag = QDrag(self)
         mimeData = QMimeData()
         title = self.__browser.title()
         if title == "":
             title = str(self.__browser.url().toEncoded(), encoding="utf-8")
         mimeData.setText(title)
         mimeData.setUrls([self.__browser.url()])
         p = self.pixmap()
         if p:
             drag.setPixmap(p)
         drag.setMimeData(mimeData)
         drag.exec_()
示例#51
0
 def mouseMoveEvent(self, event):
     # if the left mouse button is used
     if self.drag_started:
         data = QByteArray()
         mime_data = QMimeData()
         mime_data.setData(self.mimetext, data)
         drag = QDrag(self) 
         drag.setMimeData(mime_data)
         drag.setPixmap(self.icon.get_icon())
         drag.setHotSpot(self.rect().topLeft())  # where do we drag from
         if drag.exec_(Qt.MoveAction):
             self.parent().icons.remove(self)
             self.deleteLater()
示例#52
0
 def mouseMoveEvent(self, event):
     if not event.buttons() and Qt.LeftButton:
         return
     distance = (event.pos() - self.start_mouse_drag).manhattanLength()
     if distance < QApplication.startDragDistance():
         return
     item = self.selectedItems()[0]
     text = "<row>" + str(item.row()) + "<row>" + "<col>" + str(item.column()) + "<col>" + "<text>" + str(item.text()) + "<text>"
     print(text)
     drag = QDrag(self)
     mim_data = QMimeData()
     mim_data.setText(text)
     drag.setMimeData(mim_data)
     dropAction = drag.exec_(Qt.MoveAction)
示例#53
0
    def mouseMoveEvent(self, mouseEvent):
        """
        Executed when the mouse if moved while a button is being pressed.
        :type mouseEvent: QMouseEvent
        """
        if mouseEvent.buttons() & Qt.LeftButton:

            # Exclude edges from drag&drop since we need to source and edge to insert it in the diagram.
            if Item.ConceptNode <= self.item <= Item.PropertyAssertionNode:

                distance = (mouseEvent.pos() - self.startPos).manhattanLength()
                if distance >= QApplication.startDragDistance():

                    mimeData = QMimeData()
                    mimeData.setText(str(self.item.value))

                    drag = QDrag(self)
                    drag.setMimeData(mimeData)
                    drag.setPixmap(self.pixmap)
                    drag.setHotSpot(self.startPos - self.rect().topLeft())
                    drag.exec_(Qt.CopyAction)

        super().mouseMoveEvent(mouseEvent)
    def mouseMoveEvent(self, e):

        # 右ボタンのときのみDnD有効
        if e.buttons() != Qt.RightButton:
            return

        # MIMEベースでDnD情報を転送する
        mimeData = QMimeData()

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(e.pos() - self.rect().topLeft())

        # PyQt4ではdrag.start()だった
        dropAction = drag.exec_(Qt.MoveAction)
示例#55
0
 def mouseMoveEvent(self, evt):
     """
     Protected method to handle mouse move events.
     
     @param evt reference to the event (QMouseEvent)
     """
     if self.__model is None:
         super(E5ModelMenu, self).mouseMoveEvent(evt)
         return
     
     if not (evt.buttons() & Qt.LeftButton):
         super(E5ModelMenu, self).mouseMoveEvent(evt)
         return
     
     manhattanLength = (evt.pos() -
                        self.__dragStartPosition).manhattanLength()
     if manhattanLength <= QApplication.startDragDistance():
         super(E5ModelMenu, self).mouseMoveEvent(evt)
         return
     
     act = self.actionAt(self.__dragStartPosition)
     if act is None:
         super(E5ModelMenu, self).mouseMoveEvent(evt)
         return
     
     idx = self.index(act)
     if not idx.isValid():
         super(E5ModelMenu, self).mouseMoveEvent(evt)
         return
     
     drag = QDrag(self)
     drag.setMimeData(self.__model.mimeData([idx]))
     actionRect = self.actionGeometry(act)
     if qVersion() >= "5.0.0":
         drag.setPixmap(self.grab(actionRect))
     else:
         drag.setPixmap(QPixmap.grabWidget(self, actionRect))
     
     if drag.exec_() == Qt.MoveAction:
         row = idx.row()
         if self.__dropIndex == idx.parent() and self.__dropRow <= row:
             row += 1
         self.__model.removeRow(row, self.__root)
         
         if not self.isAncestorOf(drag.target()):
             self.close()
         else:
             self.aboutToShow.emit()
示例#56
0
    def mousePressEvent(self, event):
        itemData = QByteArray()
        dataStream = QDataStream(itemData, QIODevice.WriteOnly)
        dataStream << QByteArray(self.labelText) << QPoint(event.pos() - self.rect().topLeft())

        mimeData = QMimeData()
        mimeData.setData("application/x-fridgemagnet", itemData)
        mimeData.setText(self.labelText)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.setPixmap(self.pixmap())

        self.hide()

        if drag.exec_(Qt.MoveAction | Qt.CopyAction, Qt.CopyAction) == Qt.MoveAction:
            self.close()
        else:
            self.show()
示例#57
0
    def mousePressEvent(self, event):
        hotSpot = event.pos()

        mimeData = QMimeData()
        mimeData.setText(self.text())
        mimeData.setData('application/x-hotspot',
                '%d %d' % (hotSpot.x(), hotSpot.y()))

        pixmap = QPixmap(self.size())
        self.render(pixmap)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.setHotSpot(hotSpot)

        dropAction = drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction)

        if dropAction == Qt.MoveAction:
            self.close()
            self.update()
示例#58
0
    def startDrag(self, supportedActions):
        item = self.currentItem()

        itemData = QByteArray()
        dataStream = QDataStream(itemData, QIODevice.WriteOnly)
        pixmap = QPixmap(item.data(Qt.UserRole))
        location = item.data(Qt.UserRole+1)

        dataStream << pixmap << location

        mimeData = QMimeData()
        mimeData.setData('image/x-puzzle-piece', itemData)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(QPoint(pixmap.width()/2, pixmap.height()/2))
        drag.setPixmap(pixmap)

        if drag.exec_(Qt.MoveAction) == Qt.MoveAction:
            if self.currentItem() is not None:
                self.takeItem(self.row(item))
示例#59
0
    def mousePressEvent(self, event):
        square = self.targetSquare(event.pos())
        found = self.findPiece(square)

        if found == -1:
            return

        location = self.pieceLocations[found]
        pixmap = self.piecePixmaps[found]
        del self.pieceLocations[found]
        del self.piecePixmaps[found]
        del self.pieceRects[found]

        if location == QPoint(square.x() / 80, square.y() / 80):
            self.inPlace -= 1

        self.update(square)

        itemData = QByteArray()
        dataStream = QDataStream(itemData, QIODevice.WriteOnly)

        dataStream << pixmap << location

        mimeData = QMimeData()
        mimeData.setData('image/x-puzzle-piece', itemData)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - square.topLeft())
        drag.setPixmap(pixmap)

        if drag.exec_(Qt.MoveAction) != Qt.MoveAction:
            self.pieceLocations.insert(found, location)
            self.piecePixmaps.insert(found, pixmap)
            self.pieceRects.insert(found, square)
            self.update(self.targetSquare(event.pos()))

            if location == QPoint(square.x() / 80, square.y() / 80):
                self.inPlace += 1