Ejemplo n.º 1
0
 def startDrag(self, dropActions):
     item = self.currentItem()
     icon = item.icon()
     data = QByteArray()
     stream = QDataStream(data, QIODevice.WriteOnly)
     stream.writeQString(item.text())
     stream << icon
     mimeData = QMimeData()
     mimeData.setData("application/x-icon-and-text", data)
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     pixmap = icon.pixmap(24, 24)
     drag.setHotSpot(QPoint(12, 12))
     drag.setPixmap(pixmap)
     if (drag.exec(Qt.MoveAction | Qt.CopyAction) == Qt.MoveAction):
         self.takeItem(self.row(item))
         self.update()
Ejemplo n.º 2
0
 def mouseMoveEvent(self, event):
     if not (event.buttons() & Qt.LeftButton):
         return
     if (event.pos() - self.drag_start_position
         ).manhattanLength() < QApplication.startDragDistance():
         return
     if self.selectedItems():
         self.selected = self.selectedIndexes()
     if not self.selected:
         return
     drag = QDrag(self)
     mimedata = QMimeData()
     mimedata.setText(
         CALCULATOR_GRANDUNIT +
         str(self.cellWidget(self.selected[0].row(), 0).card_ids))
     drag.setMimeData(mimedata)
     drag.exec_(Qt.CopyAction | Qt.MoveAction)
Ejemplo n.º 3
0
    def mousePressEvent(self, event):
        # print('left click?')
        if event.button() == 1:  # and self.geometry().contains(event.pos()):
            # print('left click!')
            drag = QDrag(self)
            mimeData = Qt.QMimeData()
            print('formats', mimeData.formats())

            mimeData.setText('hh')
            drag.setMimeData(mimeData)
            print('formats', mimeData.formats())
            #drag.setPixmap(iconPixmap)

            dropAction = drag.exec_()
            print('dragged!')
            print(dropAction)
            print(drag)
Ejemplo n.º 4
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:
            root = QFileInfo(__file__).absolutePath()

            image = QImage(root + "/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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    def doDrag(self):
        drag = QDrag(self)
        mimeData = QMimeData()
        mimeData.setText(self.dragText)
        drag.setMimeData(mimeData)

        drag_img = QPixmap(self.width(), self.itemRowHeight)
        drag_img.fill(QColor(255, 255, 255, 100))
        painter = QPainter(drag_img)
        painter.setPen(QColor(0, 0, 0, 200))
        painter.drawText(QRectF(40, 0, self.width(), self.itemRowHeight),
                         self.dragText, QTextOption(Qt.AlignVCenter))
        painter.end()

        drag.setPixmap(drag_img)
        drag.setHotSpot(self.dragPointAtItem)
        if drag.exec(Qt.MoveAction) == Qt.MoveAction:
            print('drag')
Ejemplo n.º 7
0
 def mouseMoveEvent(self, e):
     if not (e.buttons() & Qt.LeftButton):
         return
     if (e.pos() - self.drag_start_position
         ).manhattanLength() < QApplication.startDragDistance():
         return
     drag = QDrag(self)
     mimedata = QMimeData()
     mimedata.setText(self.text())
     mimedata.setImageData(self.pixmap().toImage())
     drag.setMimeData(mimedata)
     pixmap = QPixmap(self.size())
     painter = QPainter(pixmap)
     painter.drawPixmap(self.rect(), self.grab())
     painter.end()
     drag.setPixmap(pixmap)
     drag.setHotSpot(e.pos())
     drag.exec_(Qt.CopyAction | Qt.MoveAction)
Ejemplo n.º 8
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)
Ejemplo n.º 9
0
 def startDrag(self, supportedActions):
     # 重写 startdrag()函数
     listsQModelIndex = self.selectedIndexes()
     if listsQModelIndex:
         dataQMimeData = self.model().mimeData(listsQModelIndex)
         if not dataQMimeData:
             return None
         dragQDrag = QDrag(self)
         dragQDrag.setPixmap(
             QPixmap(QDir.currentPath() +
                     "/if_Cursor_drag_arrow_103039.png"))  # <- For put your
         # custom image here
         dragQDrag.setMimeData(dataQMimeData)
         defaultDropAction = QtCore.Qt.IgnoreAction
         if ((supportedActions & QtCore.Qt.CopyAction) and
             (self.dragDropMode() != QAbstractItemView.InternalMove)):
             defaultDropAction = QtCore.Qt.CopyAction
         dragQDrag.exec_(supportedActions, defaultDropAction)
Ejemplo n.º 10
0
 def mouseMoveEvent(self,
                    e):  # место, где начинается операция перетаскивания
     if e.buttons() != Qt.RightButton:
         return  # если нажата не правая кнопка, то ничего не происходит (левая кнопка резервируется для нажатия)
     mimeData = QMimeData(
     )  # Возвращает MIME-данные, заключенные в объекте перетаскивания.
     drag = QDrag(self)  # метод Drag 'n' Drop
     drag.setMimeData(
         mimeData
     )  # Устанавливает в качестве данных, которые должны быть переданы,MIME-данные data.
     # Объект drag становится владельцем данных.
     drag.setHotSpot(e.pos() - self.rect().topLeft()
                     )  # Возвращает позицию горячей точки относительно
     # левого-верхнего угла указателя мыши.
     # dropAction = drag.exec_(Qt.MoveAction)  # почему когда нет этой строки не работает перетаскивание?
     drag.exec_(
         Qt.MoveAction
     )  # вероятно данная строчка завершает перемещения, показывает что действие завершено
Ejemplo n.º 11
0
    def startDrag(self, supportedActions):
        drag = QDrag(self)

        si = self.selectedItems()
        item = si[0]
        ind, files = self.identify_item(item)
        #print(ind)
        #print (files)
        if len(ind)>1:
            mimedata = self.model().mimeData(self.selectedIndexes())

            encoded = QByteArray()
            stream = QDataStream(encoded, QIODevice.WriteOnly)
            self.encodeData(self.selectedItems(), stream)
            mimedata.setData(self.customMimeType, encoded)

            drag.setMimeData(mimedata)
            drag.exec_(supportedActions)
Ejemplo n.º 12
0
    def mouseMoveEvent(self, e):

        if e.buttons() != Qt.LeftButton:
            return

        mimeData = QMimeData()

        drag = QDrag(self)
        dragMimeData = QtCore.QMimeData()
        mime = self.name
        if not self.isDir:
            mime = mime + '.json'
        mime = bytes(mime, encoding='utf8')
        dragMimeData.setData('MimeSchemaListRow', QByteArray(mime))
        drag.setMimeData(dragMimeData)
        drag.setHotSpot(e.pos() - self.rect().topLeft())

        dropAction = drag.exec_(Qt.MoveAction)
Ejemplo n.º 13
0
 def mousePressEvent(self, event):
     """
     鼠标按下事件(QWidget中是没有self.setDragEnabled(True)这个属性的。故我们重写了mousePressEvent方法)
     """
     square = self.targetSquare(event.pos())
     found = self.findPiece(square)
     if found == -1:
         return
     # 先看看鼠标点击的地方有没有我们的目标矩形,没有的话直接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()/self.pieceSize(), square.y()/self.pieceSize()):
         self.inPlace -= 1
     # 得到位置信息、拼图信息,并把它们从相关的列表中删除,当然拼图正确的总数也要减1
     self.update(square)
 
     itemData = QByteArray()
     dataStream = QDataStream(itemData, QIODevice.WriteOnly)
 
     dataStream << pixmap << location
     # 相关的变量放入数据流中。
 
     mimeData = QMimeData()
     mimeData.setData("image/x-puzzle-xdbcb8", itemData)
 
     drag = QDrag(self)
     drag.setMimeData(mimeData)
     drag.setHotSpot(event.pos() - square.topLeft())
     drag.setPixmap(pixmap)
     # 新建一个QDrag对象,该对象中设置mimeData,HotSpot和图片信息
 
     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()/self.pieceSize(), square.y()/self.pieceSize()):
             self.inPlace += 1
Ejemplo n.º 14
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()
Ejemplo n.º 15
0
 def mouseMoveEvent(self, event):
     # 1=all the way to the right/down, 0=all the way to the left/up
     x_ratio = event.pos().x() / self.width()
     y_ratio = event.pos().y() / self.height()
     self.drag = QDrag(self)
     # https://stackoverflow.com/a/53538805/
     pixmap = DragWidget(f"{self.name} (Id: {self.loadable_id})").grab()
     # put cursor in the same relative position on the dragwidget as
     # it clicked on the real Loadable widget.
     self.drag.setHotSpot(
         QPoint(pixmap.width() * x_ratio,
                pixmap.height() * y_ratio))
     self.drag.setPixmap(pixmap)
     mime_data = QMimeData()
     data = [self.loadable_id, self.name]
     mime_data.setData("application/x-circleguard-loadable",
                       bytes(json.dumps(data), "utf-8"))
     self.drag.setMimeData(mime_data)
     self.drag.exec()  # start the drag
Ejemplo n.º 16
0
    def mouseMoveEvent(self, event):
        # Chequear que se esté presionando el botón derecho
        if not (event.buttons() and Qt.LeftButton):
            return

        # Verificar que sea una posición válida
        if ((event.pos() - self.drag_start_position).manhattanLength() <
                QApplication.startDragDistance()):
            return

        drag = QDrag(self)
        mime_data = QMimeData()

        # Establecer el contenido del widget como dato
        mime_data.setText(self.text())
        drag.setMimeData(mime_data)

        # Ejecutar la acción
        self.drop_action = drag.exec_(Qt.CopyAction | Qt.MoveAction)
Ejemplo n.º 17
0
    def mouseMoveEvent(self, event):
        if event.buttons() & Qt.LeftButton:
            index = self._findEventIndex(event)
            event.accept()
            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
                return
            if index == self._lastSelectedCell:
                return

            modifiers = event.modifiers()
            if index >= len(self._glyphs):
                self.scrollToCell(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:
                self.selection = self._linearSelection(index)
            else:
                self.selection = {index}
            self.lastSelectedCell = index
        else:
            super(GlyphCollectionWidget, self).mouseMoveEvent(event)
Ejemplo n.º 18
0
 def mouseMoveEvent(self, event):
     if not (event.buttons() & Qt.LeftButton):
         return
     if (event.pos() - self.drag_start_position).manhattanLength() < \
             QApplication.startDragDistance():
         return
     if not self.ventana.estado == "pre-ronda":
         return
     drag = QDrag(self)
     mimedata = QMimeData()
     mimedata.setText(self.tipo)
     drag.setMimeData(mimedata)
     pixmap = QPixmap(self.size())
     painter = QPainter(pixmap)
     painter.drawPixmap(self.rect(), self.grab())
     painter.end()
     drag.setPixmap(pixmap)
     drag.setHotSpot(event.pos())
     drag.exec_(Qt.CopyAction | Qt.MoveAction)
Ejemplo n.º 19
0
 def startDrag(self, supportedActions):
     items = self.selectedItems()
     drag = QDrag(self)
     mimeData = self.mimeData(items)
     # 由于QMimeData只能设置image、urls、str、bytes等等不方便
     # 这里添加一个额外的属性直接把item放进去,后面可以根据item取出数据
     mimeData.setProperty('myItems', items)
     drag.setMimeData(mimeData)
     pixmap = QPixmap(self.viewport().visibleRegion().boundingRect().size())
     pixmap.fill(Qt.transparent)
     painter = QPainter()
     painter.begin(pixmap)
     for item in items:
         rect = self.visualRect(self.indexFromItem(item))
         painter.drawPixmap(rect, self.viewport().grab(rect))
     painter.end()
     drag.setPixmap(pixmap)
     drag.setHotSpot(self.viewport().mapFromGlobal(QCursor.pos()))
     drag.exec_(supportedActions)
Ejemplo n.º 20
0
    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
Ejemplo n.º 21
0
    def mousePressEvent(self, event):

        child = self.childAt(event.pos())
        if not child:
            return

        mimeData = QMimeData()
        mimeData.setText(child.type)

        logging.debug('mousePressEvent() called: {}'.format(event.pos()))
        drag = QDrag(self)
        drag.setPixmap(child.pixmap())
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - child.pos())

        if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
            child.close()
        else:
            child.show()
            child.setPixmap(child.pixmap())
Ejemplo n.º 22
0
    def mouseMoveEvent(self, event):
        """Reimplement how to handle the widget being dragged. Change the mouse 
        icon when the user begins dragging the object."""
        drag = QDrag(self)
        # When the user begins dragging the object, change the cursor's icon
        # and set the drop action
        drag.setDragCursor(QPixmap("images/drag.png"), Qt.MoveAction)
        mime_data = QMimeData()
        drag.setMimeData(mime_data)

        # Create the QPainter object that will draw the widget being dragged
        pixmap = QPixmap(self.size())  # Get the size of the object
        painter = QPainter(pixmap)  # Set the painter’s pixmap
        # Draw the pixmap; grab() renders the widget into a pixmap specified by rect()
        painter.drawPixmap(self.rect(), self.grab())
        painter.end()

        drag.setPixmap(pixmap)  # Set the pixmap to represent the drag action
        drag.setHotSpot(event.pos())
        drag.exec_(Qt.MoveAction)
Ejemplo n.º 23
0
    def mouseMoveEvent(self, event):
        '''
        拖动中我们所要显示的图形、鼠标样式
        '''

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

        root = QFileInfo(__file__).absolutePath()#绝对路径

        image = QImage(root + '/res/{}.png'.format(self.type))
        mime.setImageData(image)
        drag.setPixmap(QPixmap.fromImage(image).scaled(50, 50))
        drag.setHotSpot(QPoint(25, 25))

        drag.exec_()
        # 设置拖动中图像以及HotSpot

        self.setCursor(Qt.OpenHandCursor)
Ejemplo n.º 24
0
    def start_drag(self, info_id):
        # pixmap = QPixmap()
        # painter = QPainter( pixmap )
        # painter.setFont( QFont("Arial") );
        # painter.drawText( QPoint(100, 100), info_id );
        mimeData = QMimeData()
        mimeData.data = ("/" + info_id.partition("/")[2].partition("/")[0],
                         moose.element(info_id))
        mimeData.setText(info_id)
        drag = QDrag(self)
        drag.setMimeData(mimeData)
        pixmap = QPixmap("")

        drag.setPixmap(pixmap)
        # drag.setHotSpot(e.pos() - self.rect().topLeft())
        dropAction = drag.start(QtCore.Qt.MoveAction)
        print(" => ", dropAction)
        self.select_info.set_event_type(0)
        self._timer.start(0)
        return
Ejemplo n.º 25
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)
Ejemplo n.º 26
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()
Ejemplo n.º 27
0
    def mouseMoveEvent(self, e: QMouseEvent):
        # 왼쪽 버튼은 클릭용이므로 오른쪽 버튼 입력 허용
        if e.buttons() != Qt.RightButton:
            return

        # 데이터 전송을 위한 MIME 객체 선언
        # 데이터 타입, 보낼 데이터를 Bytes 형으로 저장
        mime_data = QMimeData()
        mime_data.setData("application/hotspot", b"%d %d" % (e.x(), e.y()))

        drag = QDrag(self)
        # MIME 타입데이터를 Drag에 설정
        drag.setMimeData(mime_data)
        # 드래그시 위젯의 모양 유지를 위해 QPixmap에 모양을 렌더링
        pixmap = QPixmap(self.size())
        self.render(pixmap)
        drag.setPixmap(pixmap)

        drag.setHotSpot(e.pos() - self.rect().topLeft())
        drag.exec_(Qt.MoveAction)
Ejemplo n.º 28
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(E5ModelToolBar, self).mouseMoveEvent(evt)
            return

        if not (evt.buttons() & Qt.LeftButton):
            super(E5ModelToolBar, self).mouseMoveEvent(evt)
            return

        manhattanLength = (evt.pos() -
                           self.__dragStartPosition).manhattanLength()
        if manhattanLength <= QApplication.startDragDistance():
            super(E5ModelToolBar, self).mouseMoveEvent(evt)
            return

        act = self.actionAt(self.__dragStartPosition)
        if act is None:
            super(E5ModelToolBar, self).mouseMoveEvent(evt)
            return

        idx = self.index(act)
        assert idx.isValid()

        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)
Ejemplo n.º 29
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()
Ejemplo n.º 30
0
    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