En PyQt5, une barre d'outils peut être ajoutée à une fenêtre en utilisant la classe QToolBar. Une barre d'outils contient des actions, comme des boutons ou des options, qui permettent de déclencher des commandes spécifiques. Voici comment créer une fenêtre PyQt5 avec une barre d'outils contenant des actions et comment les associer à des fonctionnalités.
Exemple de code
Ces deux exemples montrent comment créer une fenêtre PyQt5 avec une barre d'outils contenant des actions pour sauvegarder et ouvrir un fichier. Ces actions sont associées à des icônes et des raccourcis clavier pour une meilleure accessibilité.
1. Barre d'outils simple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit, QToolBar from PyQt5.QtGui import QIcon class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Fenêtre avec Barre d'Outils PyQt5") self.setGeometry(100, 100, 600, 400) # Créer un widget central (éditeur de texte) self.text_edit = QTextEdit() self.setCentralWidget(self.text_edit) # Ajouter une barre d'outils self.create_toolbar() def create_toolbar(self): # Créer la barre d'outils toolbar = QToolBar("Outils") self.addToolBar(toolbar) # Action "Ouvrir" open_action = QAction(QIcon("open.png"), "Ouvrir", self) open_action.setShortcut("Ctrl+O") open_action.setStatusTip("Ouvrir un fichier") open_action.triggered.connect(self.open_file) toolbar.addAction(open_action) # Action "Sauvegarder" save_action = QAction(QIcon("save.png"), "Sauvegarder", self) save_action.setShortcut("Ctrl+S") save_action.setStatusTip("Sauvegarder le fichier") save_action.triggered.connect(self.save_file) toolbar.addAction(save_action) def open_file(self): # Logique pour ouvrir un fichier self.text_edit.setText("Action Ouvrir déclenchée") def save_file(self): # Logique pour sauvegarder un fichier self.text_edit.setText("Action Sauvegarder déclenchée") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) |
2. Barre d'outils avec un bouton save
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QTextEdit, QToolBar, QFileDialog from PyQt5.QtGui import QIcon class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Fenêtre avec QTextEdit et Barre d'Outils") self.setGeometry(100, 100, 600, 400) # Ajouter un QTextEdit comme widget central self.text_edit = QTextEdit() self.setCentralWidget(self.text_edit) # Ajouter une barre d'outils avec un bouton "Save" self.create_toolbar() def create_toolbar(self): # Créer la barre d'outils toolbar = QToolBar("Outils") self.addToolBar(toolbar) # Action "Save" avec texte uniquement save_action = QAction("Save", self) # Texte uniquement save_action.setShortcut("Ctrl+S") save_action.setStatusTip("Sauvegarder le fichier") save_action.triggered.connect(self.save_file) toolbar.addAction(save_action) def save_file(self): # Ouvrir une boîte de dialogue pour sélectionner le chemin de sauvegarde file_path, _ = QFileDialog.getSaveFileName(self, "Enregistrer le fichier", "", "Text Files (*.txt);;All Files (*)") # Si un chemin est choisi, enregistrer le contenu de QTextEdit if file_path: with open(file_path, 'w') as file: file.write(self.text_edit.toPlainText()) self.statusBar().showMessage("Fichier sauvegardé avec succès", 2000) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Fenêtre PyQt5 avec Barre d'outils”