Files
2025-07-04 19:26:39 +02:00

70 lines
2.5 KiB
Python

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()