안규 공부방

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)

  -- 마우스 휠을 돌렸을때 호출되는 메서드.

 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.