From ffa7f4ce84e859192783fdcdb084ce7f75d33aee Mon Sep 17 00:00:00 2001
From: Lucas Philippe <lucasphilippe@MacBook-Air-de-Lucas.local>
Date: Thu, 22 Feb 2024 11:20:15 +0100
Subject: [PATCH] Affichage du clavier

---
 TP4/src/Main.py                   |  2 +-
 TP4/src/widgets/KeyboardWidget.py | 28 ++++++++++++++++++++++++++--
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/TP4/src/Main.py b/TP4/src/Main.py
index f574433..f6deb04 100644
--- a/TP4/src/Main.py
+++ b/TP4/src/Main.py
@@ -5,7 +5,7 @@ from src.widgets.EditeurWindow import EditeurWindow
 def main():
     app = QApplication(sys.argv)
     window = EditeurWindow()
-    window.resize(1024, 800)
+    #window.resize(575, 200)
     window.show()
     sys.exit(app.exec_())
 
diff --git a/TP4/src/widgets/KeyboardWidget.py b/TP4/src/widgets/KeyboardWidget.py
index 660ca76..5c8d081 100644
--- a/TP4/src/widgets/KeyboardWidget.py
+++ b/TP4/src/widgets/KeyboardWidget.py
@@ -1,5 +1,7 @@
 import json
 
+from PyQt5.QtCore import Qt, QSize
+from PyQt5.QtGui import QPainter
 from PyQt5.QtWidgets import QWidget
 from documents.FileDefinition import LAYOUT_FILE
 from src.model.Key import Key
@@ -13,6 +15,9 @@ class KeyboardWidget(QWidget):
         self.keyHeight = None
         self.keySpacing = None
 
+        self.keyboardWidth = 0
+        self.keyboardHeight = 0
+
         # Initialiser le clavier
         self.loadLayoutJson()
         self.update()
@@ -33,6 +38,25 @@ class KeyboardWidget(QWidget):
             self.keys.append(self.createKey(keyData))
 
     def createKey(self, keyData):
-        return Key(keyData['x'], keyData['y'], self.keyWidth, self.keyHeight, self.keySpacing, keyData['width'], keyData['symbol'])
-
+        key = Key(keyData['x'], keyData['y'], self.keyWidth, self.keyHeight, self.keySpacing, keyData['width'], keyData['symbol'])
+        bottomRightPoint = key.rect.bottomRight()
+        currentHeight = bottomRightPoint.y() + self.keySpacing
+        currentWidth = bottomRightPoint.x() + self.keySpacing
+
+        if self.keyboardHeight < currentHeight:
+            self.keyboardHeight = currentHeight
+
+        if self.keyboardHeight < currentWidth:
+            self.keyboardWidth = currentWidth
+        return key
+
+    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)
+
+    def sizeHint(self):
+        return QSize(self.keyboardWidth, self.keyboardHeight)
 
-- 
GitLab