Thanks for reading.
I want to drag and drop the button out side of the window, however, it is not working.
I think QmimeData problem, however, I don’t know how to.
Anyone who knows about it?
Thanks.
class DragButton(QPushButton):
def mouseMoveEvent(self, e):
if e.buttons() == Qt.LeftButton:
drag = QDrag(self)
mime = QMimeData()
drag.setMimeData(mime)
pixmap = QPixmap(self.size())
self.render(pixmap)
drag.setPixmap(pixmap)
drag.setHotSpot(e.pos())
drag.exec(Qt.MoveAction)
def mousePressEvent(self, e):
if e.button() == Qt.LeftButton:
self.original_parent = self.parent()
super().mousePressEvent(e)
class MainWindow(QMainWindow):
def init(self, title, manager, button_text):
super().init()
self.setWindowTitle(title)
self.manager = manager
layout = QVBoxLayout()
button = DragButton(button_text)
layout.addWidget(button)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
def closeEvent(self, event):
self.manager.window_closed(self)
super().closeEvent(event)