from PyQt5.
QtWidgets import QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QMessageBox,
QAction, QMainWindow, QStackedWidget, QApplication
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import Qt
class Accueil(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout(self)
label = QLabel("Bienvenue dans l'accueil")
layout.addWidget(label)
class Login(QMainWindow):
def __init__(self):
super().__init__()
# Configuration de la fenêtre
self.setWindowTitle("Gestion d'Inventaire")
self.setGeometry(125, 70, 950, 650)
self.setStyleSheet("background-color: #FF00FF;")
# Créer le widget central
self.stacked = QStackedWidget()
self.setCentralWidget(self.stacked)
# Page de connexion
self.login_page = QWidget()
self.stacked.addWidget(self.login_page)
# Cadre central pour simuler le verre
self.form_frame = QtWidgets.QFrame(self.login_page)
self.form_frame.setGeometry(175, 50, 600, 425)
self.form_frame.setStyleSheet("""
background-color: rgba(255, 255, 255, 0.5);
border-radius: 15px;
""")
# Labels et champs d'entrée
self.title = QLabel("Bienvenue sur la gestion d'inventaire", self.form_frame)
self.title.setGeometry(85, 25, 450, 50)
self.title.setFont(QtGui.QFont("Arial", 16))
self.username_input = QLineEdit(self.form_frame)
self.username_input.setGeometry(85, 100, 250, 40)
self.username_input.setPlaceholderText("Entrez le nom d'utilisateur")
self.password_input = QLineEdit(self.form_frame)
self.password_input.setGeometry(85, 160, 250, 40)
self.password_input.setPlaceholderText("Entrez le mot de passe")
self.password_input.setEchoMode(QLineEdit.Password)
self.resultat_label = QLabel("", self.form_frame)
self.resultat_label.setGeometry(85, 280, 250, 40)
self.resultat_label.setStyleSheet("color: red;")
# Bouton de connexion
self.login_button = QPushButton("Se connecter", self.form_frame)
self.login_button.setGeometry(210, 350, 120, 40)
self.login_button.clicked.connect(self.authenticate)
# Créer le menu principal
self.create_menu()
# Dictionnaire pour stocker les pages
self.pages = {}
def authenticate(self):
username = self.username_input.text()
password = self.password_input.text()
if username == "admin" and password == "admin":
# Ajouter la page d'accueil
if 'accueil' not in self.pages:
self.pages['accueil'] = Accueil()
self.stacked.addWidget(self.pages['accueil'])
self.stacked.setCurrentWidget(self.pages['accueil'])
else:
QMessageBox.warning(self, "Erreur", "Nom d'utilisateur ou mot de passe incorrect")
def create_menu(self):
menu_bar = self.menuBar()
menu = menu_bar.addMenu("Action")
self.enregistrement = QAction("Enregistrement", self)
self.enregistrement.triggered.connect(self.show_enregistrement_page)
menu.addAction(self.enregistrement)
self.stagiaire = QAction("Stagiaire", self)
self.stagiaire.triggered.connect(self.show_stagiaire_page)
menu.addAction(self.stagiaire)
self.maitre = QAction("Maitre de Stage", self)
self.maitre.triggered.connect(self.show_maitre_page)
menu.addAction(self.maitre)
self.validation = QAction("Validation", self)
self.validation.triggered.connect(self.show_validation_page)
menu.addAction(self.validation)
def show_enregistrement_page(self):
if 'enregistrement' not in self.pages:
self.pages['enregistrement'] = EnregistrementPage()
self.stacked.addWidget(self.pages['enregistrement'])
self.stacked.setCurrentWidget(self.pages['enregistrement'])
def show_stagiaire_page(self):
if 'stagiaire' not in self.pages:
self.pages['stagiaire'] = StagiairePage()
self.stacked.addWidget(self.pages['stagiaire'])
self.stacked.setCurrentWidget(self.pages['stagiaire'])
def show_maitre_page(self):
if 'maitre' not in self.pages:
self.pages['maitre'] = MaitrePage()
self.stacked.addWidget(self.pages['maitre'])
self.stacked.setCurrentWidget(self.pages['maitre'])
def show_validation_page(self):
if 'validation' not in self.pages:
self.pages['validation'] = ValidationPage()
self.stacked.addWidget(self.pages['validation'])
self.stacked.setCurrentWidget(self.pages['validation'])
class EnregistrementPage(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout(self)
label = QLabel("Enregistrement des informations")
layout.addWidget(label)
save_button = QPushButton("Sauvegarder")
save_button.clicked.connect(self.save_data)
layout.addWidget(save_button)
back_button = QPushButton("Retour")
back_button.clicked.connect(self.go_back)
layout.addWidget(back_button)
def save_data(self):
pass
def go_back(self):
self.parentWidget().setCurrentIndex(0) # Retour à l'accueil
class StagiairePage(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout(self)
label = QLabel("Liste des Stagiaires")
layout.addWidget(label)
stagiaire_button = QPushButton("Valider Stagiaire")
stagiaire_button.clicked.connect(self.save_stagiaire_info)
layout.addWidget(stagiaire_button)
back_button = QPushButton("Retour")
back_button.clicked.connect(self.go_back)
layout.addWidget(back_button)
def save_stagiaire_info(self):
pass
def go_back(self):
self.parentWidget().setCurrentIndex(0)
class MaitrePage(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout(self)
label = QLabel("Maitre de Stage des informations")
layout.addWidget(label)
back_button = QPushButton("Retour")
back_button.clicked.connect(self.go_back)
layout.addWidget(back_button)
def go_back(self):
self.parentWidget().setCurrentIndex(0)
class ValidationPage(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout(self)
label = QLabel("Validation des stagiaires")
layout.addWidget(label)
back_button = QPushButton("Retour")
back_button.clicked.connect(self.go_back)
layout.addWidget(back_button)
def go_back(self):
self.parentWidget().setCurrentIndex(0)
if __name__ == "__main__":
app = QApplication([])
main_window = Login()
main_window.show()
app.exec_()