Rechercher
 

Définition d'un popup menu avec PyQt5

L'exemple de code suivant vous montre comment définir un popup menu avec PyQt5. 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 
#!/usr/bin/python3
# -*- coding : utf-8 -*-

import sys
from PyQt5.Qt import *

class MyWindow( QMainWindow ):

    def __init__ ( self ) :
        QMainWindow.__init__( self )
        self.setWindowTitle( 'Popup Menu with Python' )
        self.resize(320, 150)

        actOpen = QAction( QIcon( "icons/open.png" ), "&Open", self )
        actOpen.setStatusTip( "Open file" )
        actSave = QAction( QIcon( "icons/save.png" ), "&Save", self )
        actSave.setStatusTip( "Save File" )
        

        actExit = QAction( QIcon( "icons/exit.png" ), "E&xit", self )
        actExit.setShortcut( "Ctrl+Q" )
        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.popupMenu = QMenu( "Standard PopupMenu", self )
        self.popupMenu.addAction( actOpen )
        self.popupMenu.addAction( actSave )
        self.popupMenu.addSeparator()
        self.popupMenu.addAction( actExit )
        
        self.statusBar().showMessage( "Example of ToolBar with Python and Qt" )

        
    def mousePressEvent(self, mouseEvent):
        if mouseEvent.button() == Qt.RightButton:
            self.popupMenu.popup(QCursor.pos())


    def close( self ):
        print( "Exit menu item clicked" )



if __name__ == "__main__" :
    app = QApplication( sys.argv )

    myWindow = MyWindow()
    myWindow.show()

    sys.exit( app.exec_() )
Définition d'un popup menu avec PyQt5

Voici le résultat produit par cette application.