Skip to content

Commit a69f0ab

Browse files
committed
add keyboard filter
1 parent 84dd87d commit a69f0ab

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

app/utils/keyboard_utils.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from utils.display_utils import DisplayUtils
2+
from re import match
3+
from PySide6.QtWidgets import QWidget
4+
from PySide6.QtCore import QEvent, QObject
5+
from PySide6.QtGui import QKeyEvent
6+
7+
class KeyboardUtils(QObject):
8+
def __init__(self, parent: QObject, displayUtils: DisplayUtils):
9+
super().__init__(parent)
10+
11+
self.displayUtils = displayUtils
12+
13+
def eventFilter(self, window: QWidget, event: QEvent) -> bool:
14+
if event.type() == QEvent.Type.KeyPress:
15+
eventKey = QKeyEvent(event).key()
16+
eventText = QKeyEvent(event).text()
17+
18+
if eventKey == 16777220:
19+
self.displayUtils.calculate()
20+
return True
21+
if eventKey == 67:
22+
self.displayUtils.clear()
23+
return True
24+
if eventKey == 16777219:
25+
self.displayUtils.delete()
26+
return True
27+
if bool(match(r"[0-9]|\.|\+|-|x|/|%", eventText)):
28+
self.displayUtils.insert(eventText)
29+
return True
30+
return False

0 commit comments

Comments
 (0)