Participer au site avec un Tip
Rechercher
 

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 :

Mise en oeuvre d'un menu contextuel

Enrichissement de la barre de statuts Positionnement au pixel prêt


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())
Définition d'un popup menu avec PySide6

Voici le résultat produit par cette application.



Enrichissement de la barre de statuts Positionnement au pixel prêt