def startDrag(self, event): """ Starts a drag using the given event. :type event: QtCore.QEvent :rtype: None """ if not self.dragEnabled(): return if self._dragStartPos and hasattr(event, 'pos'): item = self.itemAt(event.pos()) if item and item.dragEnabled(): self._dragStartIndex = self.indexAt(event.pos()) point = self._dragStartPos - event.pos() dt = self.dragThreshold() if point.x() > dt or point.y() > dt or point.x() < -dt or point.y() < -dt: items = self.selectedItems() mimeData = self.mimeData(items) pixmap = self.dragPixmap(item, items) hotSpot = QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2) self._drag = QtGui.QDrag(self) self._drag.setPixmap(pixmap) self._drag.setHotSpot(hotSpot) self._drag.setMimeData(mimeData) self._drag.start(QtCore.Qt.MoveAction)
def _libraryContextMenu(libPaths, lineEditAction, event): menu = LibrarySelectMenu(libPaths, parent=lineEditAction.line()) menu.menu().setStyleSheet('background-color:black;') point = lineEditAction.line().mapToGlobal( QtCore.QPoint(lineEditAction.line().width(), 0)) menu.show(point) lineEditAction.line().setText(menu.selected(full=False)) lineEditAction.line().clearFocus()
def _onclicked(self): point = self._pushButton.mapToGlobal(QtCore.QPoint(0, 0)) self._menu.show(point) if self._menu.selected() != "": self._label.setText(self._menu.selected())