70 lines
2.5 KiB
Python
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()
|