沒有人知道我可以在我的QWidget上實現dragMove事件嗎?所以基本上我想要的是將鼠標移到Widget上,按住鼠標按鈕並將其拖動。拖動時,小部件不應該移動,它應該只在按下鼠標時捕獲鼠標座標。在pyqt5的QWidget上實現dragMoveEvent?
我已經使用了Google,只是找到一些拖放教程,他們已經將東西拖入小部件等文本。這沒有什麼幫助。
沒有人知道我可以在我的QWidget上實現dragMove事件嗎?所以基本上我想要的是將鼠標移到Widget上,按住鼠標按鈕並將其拖動。拖動時,小部件不應該移動,它應該只在按下鼠標時捕獲鼠標座標。在pyqt5的QWidget上實現dragMoveEvent?
我已經使用了Google,只是找到一些拖放教程,他們已經將東西拖入小部件等文本。這沒有什麼幫助。
這什麼都沒有做與拖動。你實際上需要做的是啓用鼠標跟蹤,然後監控鼠標移動事件。
這裏有一個簡單的演示:
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_())
我認爲您正在尋找mousePressEvent而不是dragMoveEvent。你會需要繼承QWidget
和實施mousePressEvent
方法提供的實現:
from PyQt5.QtWidgets import QWidget
class MyWidget(QWidget):
def mousePressEvent(self, event):
print(event.pos())