[파이썬] PyQt 키보드 및 마우스 이벤트 처리

PyQt Logo

PyQt is a set of Python bindings for the Qt framework, which is commonly used for developing desktop applications. One of the essential aspects of any interactive application is handling user input, such as keyboard and mouse events.

In this blog post, we will explore how to handle keyboard and mouse events in PyQt using Python.

Handling Keyboard Events

PyQt provides several methods for handling keyboard events. One of the most common approaches is to override the keyPressEvent method of the main window or widget to handle key presses:

from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt

class MyMainWindow(QMainWindow):
    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Escape:
            self.close()

app = QApplication([])
window = MyMainWindow()
window.show()
app.exec_()

In the above example, we define a custom MyMainWindow class that inherits from QMainWindow, and we override the keyPressEvent method. Inside the method, we check if the pressed key is the Escape key (identified by the Qt.Key_Escape constant), and if so, we close the window.

Handling Mouse Events

PyQt also provides methods for handling mouse events. Similarly to keyboard events, we can override the mousePressEvent method to handle mouse clicks:

from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt

class MyMainWindow(QMainWindow):
    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            print('Left mouse button clicked')
        elif event.button() == Qt.RightButton:
            print('Right mouse button clicked')

app = QApplication([])
window = MyMainWindow()
window.show()
app.exec_()

In the above example, we override the mousePressEvent method and check the button that was clicked using the button() method of the QMouseEvent class. We differentiate between left and right mouse button clicks and print a corresponding message.

Conclusion

Handling keyboard and mouse events is an essential part of developing interactive applications. PyQt provides convenient methods for capturing and handling these events. In this blog post, we explored how to handle keyboard and mouse events using PyQt in Python.

Remember to refer to the official PyQt documentation for more information and additional event functionalities. Happy coding!