def dropEvent(self, event): #print("drop event occurred") #msg = 'dropping at {0} {1}'.format(event.pos().x(), event.pos().y()) actions = event.dropAction() #print(msg,translate_actions(actions)) if actions & Qt.CopyAction: event.acceptProposedAction() if (event.mimeData().hasImage() and event.mimeData().hasText()): pixmap = QPixmap(event.mimeData().imageData()) name = event.mimeData().text() tile = Tile(name,pixmap) tile.setCanMove(True) tile.setCanStretch(True) self.tileList.append(tile) self.layout().addWidget(tile) event.accept() elif actions & Qt.MoveAction: #print("move tile") targ = self.layout().itemAtPos(event.pos()) if targ is not None: self.layout().swapWidgets(self.curTile, targ) temp = targ.getName() targ.setName(self.curTile.getName()) self.curTile.setName(temp) event.acceptProposedAction() else: event.ignore()