윈도우에서 감지하는 마우스 휠 정보는 QWheelEvent 에 담겨져 있습니다. QWheelEvent 는 wheelEvent 이벤트 함수에서 받을 수 있습니다. wheelEvent 함수는 QWidget 에서 제공하는 마우스 휠 관련 정보를 수신할 수 있는 가상함수입니다. 가상함수란 파생 클래스에서 다시 재정의가 가능한 함수를 말합니다. 보통 상속받은 클래스의 이벤트를 이용하고 싶을 때 제공하는 가상함수를 많이 사용합니다. QWidget 에는 마우스 휠 이벤트를 제공하는 가상함수가 있습니다. 그것이 바로 가상함수 wheelEvent 입니다. QMainWindow 클래스도 QWidget 을 상속받았기 때문에 사용이 가능합니다.
▼ wheelEvent() 이벤트 핸들러 함수로 QWheelEvent 객체를 받습니다. 소스를 실행하고 마우스를 위/아래로 움직여 보세요. wheelEvent() 이벤트 함수가 실행되고 콘솔에 값을 출력합니다.
#-*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QWheelEvent
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 600, 300)
self.setWindowTitle('Mouse Wheel Event')
def wheelEvent(self, event: QWheelEvent):
print('Wheel Event')
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
▼ wheelEvent() 함수에서 전송받은 QWheelEvent 로부터 마우스 커서에 관한 많은 정보를 얻을 수 있습니다. angelDelta() 함수는 QPoint 객체를 넘기는데, 마우스 휠을 움직인 크기 값이 들어 있습니다. x() 값는 휠을 좌/우로 움직인 거리값입니다. 일반적인 마우스는 좌/우로 볼을 움직일 수 없으므로 angelDelta().x() 값은 0 입니다. angelDelta().y() 는 위/아래를 움직인 거리값입니다. 휠을 아래로 움직이면 마이너스(-), 위로 움직일 경우 플러스(+) 값을 출력합니다
#-*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QWheelEvent
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 600, 300)
self.setWindowTitle('Mouse Wheel Event')
def wheelEvent(self, event: QWheelEvent):
print(event.angleDelta().x())
print(event.angleDelta().y())
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
'파이썬 > PyQt5' 카테고리의 다른 글
파이썬(Python) PyQt5 윈도우 마우스 이벤트 정보 알아 오는 방법 (0) | 2021.11.30 |
---|---|
파이썬(Python) PyQt5 사용자 입력 다이얼 로그 QInputDialog 사용하기 (0) | 2021.11.29 |
파이썬(Python) PyQt5 QVBoxLayout, QHBoxLayout 레이아웃 사용하기 (0) | 2021.11.27 |
파이썬(Python) PyQt5 QTreeView 위젯 이용해서 윈도우 파일 (0) | 2021.11.26 |
파이썬(Python) PyQt5 QCalendarWidget 위젯 달력 사용하기 (0) | 2021.11.25 |