Initial commit
This commit is contained in:
69
source/10-graphical-ui/gui/basecontrols.py
Normal file
69
source/10-graphical-ui/gui/basecontrols.py
Normal file
@ -0,0 +1,69 @@
|
||||
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()
|
Reference in New Issue
Block a user