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 :

Définition d'un popup menu avec PySide2 (Qt)

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

import sys
from PySide2.QtGui import *
from PySide2.QtWidgets 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 PySide2" )

        
    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.