from PyQt5.QtWidgets import ( QPushButton, QHBoxLayout, QGroupBox, QLabel, QLineEdit, QWidget, QVBoxLayout, QComboBox, QGridLayout ) from src.gui import pageHome, pageLogin from src.core.coreUser import core_register, core_logout def main(mainWindow) -> None: if not mainWindow.userConnected: connexionState = QLabel("Non connecté.") else: connexionState = QLabel(f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}") btnAccueil = QPushButton("Accueil") btnAccueil.clicked.connect(lambda: pageHome.main(mainWindow)) if not mainWindow.userConnected: btnConnexion = QPushButton("Connexion") btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow)) else: btnDeconnexion = QPushButton("Déconnexion") btnDeconnexion.clicked.connect(lambda: core_logout(mainWindow)) layoutUser = QHBoxLayout() layoutUser.addWidget(btnAccueil) layoutUser.addStretch() if not mainWindow.userConnected: layoutUser.addWidget(btnConnexion) else: layoutUser.addWidget(btnDeconnexion) grpUtilisateur = QGroupBox("Gestion de l'utilisateur") grpUtilisateur.setLayout(layoutUser) labMail = QLabel("Email") leditMail = QLineEdit() labPassword = QLabel("Mot de passe") leditPassword = QLineEdit() leditPassword.setEchoMode(QLineEdit.Password) labStatus = QLabel("Rôle") comboStatus = QComboBox() comboStatus.addItem("Admin", 0) comboStatus.addItem("Pro", 1) comboStatus.addItem("Client", 2) btnRegister = QPushButton("S'inscrire") btnRegister.clicked.connect( lambda: core_register( mainWindow, leditMail.text(), leditPassword.text(), comboStatus.currentData() ) ) LayoutInfoConnexion = QGridLayout() LayoutInfoConnexion.addWidget(labMail, 0, 0) LayoutInfoConnexion.addWidget(leditMail, 0, 1) LayoutInfoConnexion.addWidget(labPassword, 1, 0) LayoutInfoConnexion.addWidget(leditPassword, 1, 1) LayoutInfoConnexion.addWidget(labStatus, 2, 0) LayoutInfoConnexion.addWidget(comboStatus, 2, 1) LayoutInfoConnexion.addWidget(btnRegister, 3, 1) layoutGroupConnexion = QHBoxLayout() layoutGroupConnexion.addStretch() layoutGroupConnexion.addLayout(LayoutInfoConnexion) layoutGroupConnexion.addStretch() grpConnexion = QGroupBox("Inscription") grpConnexion.setLayout(layoutGroupConnexion) layoutMain = QVBoxLayout() layoutMain.addWidget(connexionState) layoutMain.addWidget(grpUtilisateur) layoutMain.addStretch() layoutMain.addWidget(grpConnexion) layoutMain.addStretch() mainWindow.mainWidget.deleteLater() mainWindow.mainWidget = QWidget() mainWindow.mainWidget.setLayout(layoutMain) mainWindow.setCentralWidget(mainWindow.mainWidget)