如何在PyQt5中使用QDrag拖动时显示QPushButton?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在PyQt5中使用QDrag拖动时显示QPushButton?相关的知识,希望对你有一定的参考价值。
当我拖动我的QPushButton时,它会消失直到掉落。我想在拖动时一直显示按钮。怎么做?
向下拖动我的Button,包括QDrag对象。
如果需要,很高兴分享更多代码:)
我的屏幕照片
class DraggableCodeBlock(QPushButton):
def __init__(self, width, height, offset_left, offset_top, parent, command):
super().__init__(parent=parent)
self.parent = parent
self.setText(command)
self.show()
def mouseMoveEvent(self, e):
if e.buttons() != Qt.LeftButton:
return
mimeData = QMimeData()
drag = QDrag(self)
drag.setMimeData(mimeData)
drag.setHotSpot(e.pos() - self.rect().topLeft())
dropAction = drag.exec_(Qt.MoveAction)
super(DraggableCodeBlock, self).mouseMoveEvent(e)
def mousePressEvent(self, e):
super().mousePressEvent(e)
if e.button() == Qt.LeftButton or not(self.is_mobile):
print('press')
答案
你必须设置你想通过setPixmap()
显示的图像,以获得你应该使用的小部件的图像grab()
:
drag = QDrag(self)
drag.setPixmap(self.grab())
以上是关于如何在PyQt5中使用QDrag拖动时显示QPushButton?的主要内容,如果未能解决你的问题,请参考以下文章