잠시 후 마우스 좌표를 QGraphicsView
이상으로 추적하려고합니다. 다음과 같이 내가 QGraphicsView
로 전환 할 때QGraphicsView는 마우스 이동 이벤트를 어떻게 받습니까?
This answer가 예상대로 작동 QLabel
객체에 대해 잘 작동하지만,하지 : 특히
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.graphicsView = QtGui.QGraphicsView(self)
self.graphicsView.setMouseTracking(True)
self.graphicsView.installEventFilter(self)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.graphicsView)
def eventFilter(self, source, event):
if (event.type() == QtCore.QEvent.MouseMove and
source is self.graphicsView):
pos = event.pos()
print('mouse move: (%d, %d)' % (pos.x(), pos.y()))
return QtGui.QWidget.eventFilter(self, source, event)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
window.resize(200, 100)
sys.exit(app.exec_())
,이 이벤트가 잡힌 것으로 보인다 경우에만 내 커서가 건너 이동 QGraphicsView의 경계 (검은 색 선).
는 사람이 말해 왜 더 나은 솔루션이 있을까요? 특정 위젯
. 도움을 주셔서 감사합니다 : D – veslam
아마 모든것이'QAbstractScrollArea'입니다. 'viewportEvent()'를 오버라이드하는 것은 어떨까요? 또 다른 가능성이있을 것입니다. (나는 보통 이벤트 필터를 사용하지 않았다. 왜냐하면 보통 나는 어쨌든 올바른 이벤트를 무시할 수 있기 때문이다. 그러나 무엇이 더 좋은지 궁금하다.) – Trilarion