Python 프로그래밍 > PyQt5 - 마우스 관련 이벤트 예제
등록일 : 2017-11-14 19:29
조회수 : 97,385
from PyQt5.QtWidgets import QMainWindow, QApplication, QDesktopWidget
from PyQt5.QtCore import Qt
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.setMouseTracking(True)
self.setWindowTitle('mouse')
self.resize(320, 240)
self.show()
def mousePressEvent(self, event): #event : QMouseEvent
if event.buttons() & Qt.LeftButton:
print('BUTTON PRESS - LEFT')
if event.buttons() & Qt.MidButton:
print('BUTTON PRESS - MIDDLE')
if event.buttons() & Qt.RightButton:
print('BUTTON PRESS - RIGHT')
def mouseReleaseEvent(self, event): # event : QMouseEvent
print('BUTTON RELEASE')
def wheelEvent(self, event): # event QWheelEvent
print('wheel')
print('(%d %d)' % (event.angleDelta().x(), event.angleDelta().y()))
def mouseMoveEvent(self, event): # event QMouseEvent
print('(%d %d)' % (event.x(), event.y()))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
win = Main()
sys.exit(app.exec_())
1. setMouseTracking()
-- False 값 설정시에는, 마우스 클릭시에만 마우스 이동 감지.
-- True 설정시에는, 마수스 클릭 안해도 마우스 이동 감진.
2. mousePressEvent(event)
-- 마우스 버튼을 클릭할 때 호출 되는 메서드.
3. mouseMoveEvent(event)
-- 마우스가 움직일때 호출되는 메서드.
--event.x, event.y() : widget 내의 마우스 좌표
-- event.globalX(), event.globalY() : 화면내의 마우스 좌표
4. mouseReleaseEvent(event)
-- 마우스 버튼을 클릭한 후 떼었을때 호출되는 메서드.
5. wheelEvent(event)
-- 마우스 휠을 돌렸을때 호출되는 메서드.