Python PyQt5.QtGui.QDrag() Examples
The following are 15
code examples of PyQt5.QtGui.QDrag().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
PyQt5.QtGui
, or try the search function
.
Example #1
Source File: cue_widget.py From linux-show-player with GNU General Public License v3.0 | 6 votes |
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()
Example #2
Source File: widgets.py From pychemqt with GNU General Public License v3.0 | 6 votes |
def __init__(self, parent=None): super(DragButton, self).__init__(parent) # def mouseMoveEvent(self, event): # self.startDrag() # QtWidgets.QToolButton.mouseMoveEvent(self, event) # def startDrag(self): # if self.icon().isNull(): # return # data = QtCore.QByteArray() # stream = QtCore.QDataStream(data, QtCore.QIODevice.WriteOnly) # stream << self.icon() # mimeData = QtCore.QMimeData() # mimeData.setData("application/x-equipment", data) # drag = QtGui.QDrag(self) # drag.setMimeData(mimeData) # pixmap = self.icon().pixmap(24, 24) # drag.setHotSpot(QtCore.QPoint(12, 12)) # drag.setPixmap(pixmap) # drag.exec_(QtCore.Qt.CopyAction)
Example #3
Source File: palette.py From eddy with GNU General Public License v3.0 | 6 votes |
def mouseMoveEvent(self, mouseEvent): """ Executed when the mouse if moved while a button is being pressed. :type mouseEvent: QMouseEvent """ if mouseEvent.buttons() & QtCore.Qt.LeftButton: if Item.ConceptNode <= self.item < Item.InclusionEdge: distance = (mouseEvent.pos() - self.startPos).manhattanLength() if distance >= QtWidgets.QApplication.startDragDistance(): mimeData = QtCore.QMimeData() mimeData.setText(str(self.item.value)) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(self.icon().pixmap(60, 40)) drag.setHotSpot(self.startPos - self.rect().topLeft()) drag.exec_(QtCore.Qt.CopyAction) super().mouseMoveEvent(mouseEvent)
Example #4
Source File: basictools.py From Pythonic with GNU General Public License v3.0 | 6 votes |
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())
Example #5
Source File: elementmaster.py From Pythonic with GNU General Public License v3.0 | 6 votes |
def mousePressEvent(self, event): logging.debug('ElementMaster::mousePressEvent() called') # uncomment this for debugging purpose #self.listChild() if event.buttons() != Qt.LeftButton: return icon = QLabel() mimeData = QMimeData() mime_text = str(self.row) + str(self.column) + str(self.__class__.__name__) mimeData.setText(mime_text) drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(self.pixmap) drag.setHotSpot(event.pos() - self.rect().topLeft()) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: icon.close() else: icon.show() icon.setPixmap(self.pixmap)
Example #6
Source File: DragDrop.py From PyQt with GNU General Public License v3.0 | 6 votes |
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)
Example #7
Source File: dragbutton.py From python with Apache License 2.0 | 5 votes |
def mouseMoveEvent(self, e): if e.buttons() != Qt.RightButton: # 只操作右键事件 return mimeData = QMimeData() drag = QDrag(self) # 创建一个QDrag对象,用来传输MIME-based数据 drag.setMimeData(mimeData) drag.setHotSpot(e.pos() - self.rect().topLeft()) dropAction = drag.exec_(Qt.MoveAction)
Example #8
Source File: site_panel.py From pyNMS with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): # retrieve the label child = self.childAt(event.pos()) if not child: return self.controller.mode = 'selection' # update the creation mode to the appropriate subtype self.controller.creation_mode = child.subtype pixmap = QPixmap(child.pixmap().scaled( QSize(50, 50), Qt.KeepAspectRatio, Qt.SmoothTransformation )) mime_data = QtCore.QMimeData() mime_data.setData('application/x-dnditemdata', QtCore.QByteArray()) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10)) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: child.close() else: child.show()
Example #9
Source File: internal_node_creation_panel.py From pyNMS with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): # retrieve the label child = self.childAt(event.pos()) if not child: return self.controller.mode = 'selection' # update the creation mode to the appropriate subtype self.controller.creation_mode = child.subtype pixmap = QPixmap(child.pixmap().scaled( QSize(50, 50), Qt.KeepAspectRatio, Qt.SmoothTransformation )) mime_data = QtCore.QMimeData() mime_data.setData('application/x-dnditemdata', QtCore.QByteArray()) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10)) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: child.close() else: child.show()
Example #10
Source File: network_node_creation_panel.py From pyNMS with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): # retrieve the label child = self.childAt(event.pos()) if not child: return self.controller.mode = 'selection' # update the creation mode to the appropriate subtype self.controller.creation_mode = child.subtype # we change the view if necessary: # if it is a site, we switch the site view # if it is anything else and we are in the site view, we switch # to the network view if child.subtype == 'site': self.project.show_site_view() else: if self.project.view_type == 'site': self.project.show_network_view() pixmap = QPixmap(child.pixmap().scaled( QSize(50, 50), Qt.KeepAspectRatio, Qt.SmoothTransformation )) mime_data = QtCore.QMimeData() mime_data.setData('application/x-dnditemdata', QtCore.QByteArray()) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10)) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: child.close() else: child.show()
Example #11
Source File: connectivitytools.py From Pythonic with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): child = self.childAt(event.pos()) if not child: return pixmap = QPixmap(child.pixmap()) mimeData = QMimeData() mimeData.setText(child.type) drag = QDrag(self) drag.setPixmap(child.pixmap()) drag.setMimeData(mimeData) 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)
Example #12
Source File: mltools.py From Pythonic with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): child = self.childAt(event.pos()) if not child: return pixmap = QPixmap(child.pixmap()) mimeData = QMimeData() mimeData.setText(child.type) drag = QDrag(self) drag.setPixmap(child.pixmap()) drag.setMimeData(mimeData) 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)
Example #13
Source File: dropbox.py From Pythonic with GNU General Public License v3.0 | 5 votes |
def mousePressEvent(self, event): logging.debug('DropBox::mousePressEvent() called: {}'.format(event.pos())) try: mimeData = QMimeData() mimeData.setText(self.type) # load config into memory tmp_config of storabar self.parent.tmp_config = self.config self.parent.tmp_element = self # push config to active workingarea self.parent.loadConfig() except Exception as e: logging.error('DropBox::mousePressEvent() Exception caught: {}'.format(str(e))) return drag = QDrag(self) drag.setHotSpot(event.pos()) drag.setPixmap(self.label.pixmap()) drag.setMimeData(mimeData) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: self.close() else: self.show() self.label.setPixmap(self.label.pixmap()) logging.debug('DropBox::mousePressEvent() dropped')
Example #14
Source File: tree_numeric.py From asammdf with GNU Lesser General Public License v3.0 | 5 votes |
def startDrag(self, supportedActions): selected_items = self.selectedItems() mimeData = QtCore.QMimeData() data = [] for item in selected_items: entry = item.entry if entry == (-1, -1): info = { "name": item.name, "computation": {}, } info = json.dumps(info).encode("utf-8") else: info = item.name.encode("utf-8") data.append( pack( f"<36s3q{len(info)}s", str(item.mdf_uuid).encode("ascii"), entry[0], entry[1], len(info), info, ) ) mimeData.setData( "application/octet-stream-asammdf", QtCore.QByteArray(b"".join(data)) ) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.exec(QtCore.Qt.CopyAction)
Example #15
Source File: list.py From asammdf with GNU Lesser General Public License v3.0 | 4 votes |
def startDrag(self, supportedActions): selected_items = self.selectedItems() mimeData = QtCore.QMimeData() data = [] for item in selected_items: entry = item.entry computation = item.computation widget = self.itemWidget(item) color = widget.color unit = widget.unit if entry == (-1, -1): info = { "name": item.name, "computation": computation, "computed": True, "unit": unit, "color": color, } info = json.dumps(info).encode("utf-8") else: info = item.name.encode("utf-8") data.append( pack( f"<36s3q{len(info)}s", str(item.mdf_uuid).encode("ascii"), entry[0], entry[1], len(info), info, ) ) mimeData.setData( "application/octet-stream-asammdf", QtCore.QByteArray(b"".join(data)) ) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.exec(QtCore.Qt.CopyAction)