2016-08-17 4 views
1

私のQWidgetでdragMoveイベントを実装する方法を知っている人はいますか?だから、基本的には、私のマウスをウィジェット上に移動して、マウスボタンを押したままドラッグすることです。ドラッグしている間は、ウィジェットを移動しないでください。マウスが押されている間だけマウス座標を取得する必要があります。pyqt5のQWidgetでdragMoveEventを実装していますか?

私はすでにGoogleで検索して、テキストなどのウィジェットに何かをドラッグしたドラッグアンドドロップチュートリアルを見つけます。これは本当に役に立たなかった。

答えて

0

。実際に行う必要があるのは、マウストラッキングを有効にし、マウス移動イベントを監視することです。ここで

は簡単なデモです:

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_()) 
0

dragMoveEventではなく、mousePressEventを探していると思います。あなたの実装を提供mousePressEvent方法をQWidgetをサブクラス化して実装する必要があります:これはドラッグとは何の関係も持っていない

from PyQt5.QtWidgets import QWidget 

class MyWidget(QWidget): 

    def mousePressEvent(self, event): 
     print(event.pos()) 
関連する問題