Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • lucas.philippe.etu/philippe-iihm
1 result
Show changes
Commits on Source (2)
import os
DATA_DIR = os.path.dirname(os.path.abspath(__file__))
LAYOUT_FILE = os.path.join(DATA_DIR, 'layout.json')
{
"keyWidth": 50,
"keyHeight": 20,
"keySpacing": 3,
"nbReco": 4,
"keys" : [
{ "symbol": "a", "x" : 0, "y" : 1, "width": 1 },
{ "symbol": "z", "x" : 1, "y" : 1, "width": 1 },
{ "symbol": "e", "x" : 2, "y" : 1, "width": 1 },
{ "symbol": "r", "x" : 3, "y" : 1, "width": 1 },
{ "symbol": "t", "x" : 4, "y" : 1, "width": 1 },
{ "symbol": "y", "x" : 5, "y" : 1, "width": 1 },
{ "symbol": "u", "x" : 6, "y" : 1, "width": 1 },
{ "symbol": "i", "x" : 7, "y" : 1, "width": 1 },
{ "symbol": "o", "x" : 8, "y" : 1, "width": 1 },
{ "symbol": "p", "x" : 9, "y" : 1, "width": 1 },
{ "symbol": "q", "x" : 1, "y" : 2, "width": 1 },
{ "symbol": "s", "x" : 0, "y" : 2, "width": 1 },
{ "symbol": "d", "x" : 2, "y" : 2, "width": 1 },
{ "symbol": "f", "x" : 3, "y" : 2, "width": 1 },
{ "symbol": "g", "x" : 4, "y" : 2, "width": 1 },
{ "symbol": "h", "x" : 5, "y" : 2, "width": 1 },
{ "symbol": "j", "x" : 6, "y" : 2, "width": 1 },
{ "symbol": "k", "x" : 7, "y" : 2, "width": 1 },
{ "symbol": "l", "x" : 8, "y" : 2, "width": 1 },
{ "symbol": "m", "x" : 9, "y" : 2, "width": 1 },
{ "symbol": "q", "x" : 1, "y" : 2, "width": 1 },
{ "symbol": "⇧", "x" : 0, "y" : 3, "width": 2 },
{ "symbol": "w", "x" : 2, "y" : 3, "width": 1 },
{ "symbol": "x", "x" : 3, "y" : 3, "width": 1 },
{ "symbol": "c", "x" : 4, "y" : 3, "width": 1 },
{ "symbol": "v", "x" : 5, "y" : 3, "width": 1 },
{ "symbol": "b", "x" : 6, "y" : 3, "width": 1 },
{ "symbol": "n", "x" : 7, "y" : 3, "width": 1 },
{ "symbol": "⇦", "x" : 8, "y" : 3, "width": 2 },
{ "symbol": " ", "x" : 0, "y" : 4, "width": 8 },
{ "symbol": "↵", "x" : 8, "y" : 4, "width": 2 }
]
}
\ No newline at end of file
import sys
from PyQt5.QtWidgets import QApplication
from src.widgets.EditeurWindow import EditeurWindow
def main():
app = QApplication(sys.argv)
window = EditeurWindow()
#window.resize(575, 200)
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
\ No newline at end of file
from PyQt5.QtCore import QRect, QPoint, QSize
class Key:
def __init__(self, x, y, keyWidth, keyHeight, keySpacing, width, symbol):
self.x = x * (keyWidth + keySpacing)
self.y = y * (keyHeight + keySpacing)
self.position = QPoint(self.x, self.y)
self.symbol = symbol
self.rect = QRect(self.x, self.y, width * (keyWidth + keySpacing) - keySpacing, keyHeight)
from PyQt5.QtWidgets import QWidget, QLineEdit, QVBoxLayout
from src.widgets.KeyboardWidget import KeyboardWidget
class EditeurWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Editeur')
# Création des widgets
line_edit = QLineEdit(self)
keyboard_widget = KeyboardWidget()
# Création du layout et ajout des widgets
layout = QVBoxLayout()
layout.addWidget(line_edit)
layout.addWidget(keyboard_widget)
self.setLayout(layout)
\ No newline at end of file
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
class KeyboardWidget(QWidget):
def __init__(self):
super().__init__()
self.keys = []
self.keyWidth = None
self.keyHeight = None
self.keySpacing = None
self.keyboardWidth = 0
self.keyboardHeight = 0
# Initialiser le clavier
self.loadLayoutJson()
self.update()
def loadLayoutJson(self):
# Chargement du fichier JSON contenant les paramètres du clavier
with open(LAYOUT_FILE, "r") as f:
layout_clavier = json.load(f)
# Accéder aux paramètres
self.keyWidth = layout_clavier['keyWidth']
self.keyHeight = layout_clavier['keyHeight']
self.keySpacing = layout_clavier['keySpacing']
# Créer la clé de chaque touche
for keyData in layout_clavier['keys']:
self.keys.append(self.createKey(keyData))
def createKey(self, keyData):
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)