import sys from PySide6.QtGui import QIcon from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QMenuBar, QMenu, QAction, \ QMainWindow, QWidget class Window(QMainWindow): """ Classe définissant notre fenêtre principale. """ def __init__(self, parent=None): """ Initialiser chaque nouvelle instance de notre fenêtre. Args: parent: Widget qui va contenir notre boîte de dialogue. """ super().__init__(parent=parent) self.setWindowTitle("Ma nouvelle fenêtre") # Create widgets self.icon = QIcon.fromTheme("scanner") self.basewidget = QWidget(self) self.edit = QLineEdit("Zone de texte") self.button = QPushButton("Appuyez ici !") self.menubar = QMenuBar(self) self.menu = QMenu(self.menubar, title="Élément de menu principal") self.menuentry = QAction(QIcon.fromTheme("network-wired"), "&Action") self.menu.addAction(self.menuentry) self.menubar.addAction(self.menu.menuAction()) # Insérer un objet de mise en page dans notre fenêtre, # et y ajouter nos champ de texte et bouton self.setCentralWidget(self.basewidget) layout = QVBoxLayout(self) self.basewidget.setLayout(layout) self.setMenuBar(self.menubar) layout.addWidget(self.edit) layout.addWidget(self.button) self.setMinimumSize(640, 128) # Connecter le clic du bouton à la méthode "validate_button" self.button.clicked.connect(self.validate_button) def validate_button(self): """ On définit cette méthode pour répondre au clic sur un bouton. Il faut que l'on configure notre bouton pour que lorsqu'on clique dessus, cette méthode soit exécutée. """ print(f"Vous avez saisi {self.edit.text()}") if __name__ == "__main__": # Créer une instance qui définit une application Qt # Via la variable "sys.argv", qui correspond aux arguments passés en ligne de commande # dans une liste de chaînes (ex. python programme.py arg1 arg2 arg3) # on peut configurer le comportement de notre application... # Également : notre application est un Singleton application = QApplication(sys.argv) # Ajouter notre boîte de dialogue window = Window() window.show() # Lancer la boucle Qt, qui ferme le programme quand on ferme toutes les fenêtres application.exec_() sys.exit()