有谁知道如何在我的QWidget上实现dragMove事件?基本上我想要的是将鼠标移到Widget上按住鼠标按钮并拖动它。拖动时,不应移动窗口小部件,只应在鼠标按下时捕获鼠标坐标。
我已经google了,只是找到一些拖放教程,他们将某些内容拖入小部件等文本中。这不是真的有用。
答案 0 :(得分:1)
这与拖动无关。您实际需要做的是启用鼠标跟踪,然后监控鼠标移动事件。
这是一个简单的演示:
from PyQt5 import QtCore, QtGui, QtWidgets
class Window(QtWidgets.QWidget):
def __init__(self):
super(Window, self).__init__()
self.setMouseTracking(True)
def mouseMoveEvent(self, event):
if event.buttons() & QtCore.Qt.LeftButton:
print(event.globalPos().x(), event.globalPos().y())
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.setGeometry(500, 150, 100, 100)
window.show()
sys.exit(app.exec_())
答案 1 :(得分:0)
我认为您正在寻找mousePressEvent而不是dragMoveEvent。您需要子类QWidget
并实现提供实现的mousePressEvent
方法:
from PyQt5.QtWidgets import QWidget
class MyWidget(QWidget):
def mousePressEvent(self, event):
print(event.pos())