L'exemple de code suivant vous montre comment définir un popup menu avec PySide6 (Qt).
Bien entendu, je vous laisse le soin de télécharger quelques icônes à partir d'Internet pour égailler votre interface.
Il est a noter que si vous placez la souris sur un élément de menu, son statusTip
sera affiché dans la barre de status.
Notez aussi qu'une QAction
peut être ajoutée à un élément de menu, mais aussi à un popup menu et à une barre d'outils.
Dans notre exemple, le popup menu est associé à la fenêtre elle-même cliquez simplement dessus avec le bouton droit de la souris pour le faire apparaître.
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import sys from PySide6.QtGui import QAction, QIcon, QCursor, Qt from PySide6.QtWidgets import QMainWindow, QMenu, QApplication, QWidget class CentralArea(QWidget): def __init__(self, parent): super().__init__() self.popupMenu = QMenu("Standard PopupMenu", self) self.popupMenu.addAction(parent.actOpen) self.popupMenu.addAction(parent.actSave) self.popupMenu.addSeparator() self.popupMenu.addAction(parent.actExit) def mousePressEvent(self, mouseEvent): if mouseEvent.button() == Qt.RightButton: self.popupMenu.popup(QCursor.pos()) class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Popup Menu with Python') self.resize(320, 150) self.actOpen = actOpen = QAction(QIcon("icons/open.png"), "&Open", self) actOpen.setStatusTip("Open file") self.actSave = actSave = QAction(QIcon("icons/save.png"), "&Save", self) actSave.setStatusTip("Save File") self.actExit = actExit = QAction(QIcon("icons/exit.png"), "E&xit", self) actExit.setStatusTip("Exit application") actExit.triggered.connect(self.close) menuBar = self.menuBar() file = menuBar.addMenu("&File") file.addAction(actOpen) file.addAction(actSave) file.addSeparator() file.addAction(actExit) toolbar = self.addToolBar("Standard ToolBar") toolbar.addAction(actOpen) toolbar.addAction(actSave) toolbar.addSeparator() toolbar.addAction(actExit) self.statusBar().showMessage("Example of ToolBar with Python and PySide2") centralArea = CentralArea(self) self.setCentralWidget(centralArea) if __name__ == "__main__": app = QApplication(sys.argv) myWindow = MyWindow() myWindow.show() sys.exit(app.exec()) |
Voici le résultat produit par cette application.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :