Skip to content
Snippets Groups Projects
Commit 72f4071d authored by Lucas Philippe's avatar Lucas Philippe
Browse files

Saisie caractère par caractère

parent ffa7f4ce
No related branches found
No related tags found
No related merge requests found
......@@ -7,3 +7,7 @@ class Key:
self.position = QPoint(self.x, self.y)
self.symbol = symbol
self.rect = QRect(self.x, self.y, width * (keyWidth + keySpacing) - keySpacing, keyHeight)
def isOver(self, point):
return self.rect.contains(point)
\ No newline at end of file
from PyQt5.QtWidgets import QWidget, QLineEdit, QVBoxLayout
from src.widgets.KeyboardWidget import KeyboardWidget
from PySide6.QtCore import Slot
class EditeurWindow(QWidget):
def __init__(self):
......@@ -14,4 +15,7 @@ class EditeurWindow(QWidget):
layout = QVBoxLayout()
layout.addWidget(line_edit)
layout.addWidget(keyboard_widget)
self.setLayout(layout)
\ No newline at end of file
self.setLayout(layout)
# Connexion su dignal
keyboard_widget.newletter.connect(line_edit.insert)
import json
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QPainter
from PyQt5.QtCore import Qt, QSize, QPoint, pyqtSignal
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QWidget
from documents.FileDefinition import LAYOUT_FILE
from src.model.Key import Key
from PySide6.QtCore import Signal
DEFAULT_COLOR = QColor("white")
OVER_COLOR = QColor("gray")
class KeyboardWidget(QWidget):
newletter = pyqtSignal(str)
def __init__(self):
super().__init__()
self.keys = []
......@@ -18,8 +22,12 @@ class KeyboardWidget(QWidget):
self.keyboardWidth = 0
self.keyboardHeight = 0
self.mousePos = QPoint(0,0)
self.pressedKey = None
# Initialiser le clavier
self.loadLayoutJson()
self.setMouseTracking(True)
self.update()
def loadLayoutJson(self):
......@@ -52,11 +60,36 @@ class KeyboardWidget(QWidget):
def paintEvent(self, event):
self.sizeHint()
painter = QPainter(self)
for key in self.keys:
painter.drawRect(key.rect)
painter.drawText(key.rect, Qt.AlignCenter, key.symbol)
if key.isOver(self.mousePos):
self.paintKey(key, OVER_COLOR)
else:
self.paintKey(key, DEFAULT_COLOR)
def sizeHint(self):
return QSize(self.keyboardWidth, self.keyboardHeight)
def mouseMoveEvent(self, event):
self.mousePos = event.pos()
self.update()
def mousePressEvent(self, event):
for key in self.keys:
if key.isOver(self.mousePos):
self.pressedKey = key
return
def mouseReleaseEvent(self, event):
for key in self.keys:
if key.isOver(self.mousePos):
if key == self.pressedKey:
self.pressedKey = None
self.newletter.emit(key.symbol)
return
else:
return
def paintKey(self, key, color):
painter = QPainter(self)
painter.setBrush(color)
painter.drawRect(key.rect)
painter.drawText(key.rect, Qt.AlignCenter, key.symbol)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment