[pyqt] menu
Bul
-
bul -
bul -
Bonjour,
extrait du code "simplifié" :
dans choix(), j'aimerais afficher le texte de la ligne cliquée du menu
( Alain, Bernard ou Claude ) j'ai tenté plein de trucs, je n'y arrive pas.
comment passer en paramètre "texte du menu cliqué" ?
fonction choix() unique, addAction créé comme dans l'exemple
si vous pouviez m'aider
merci
extrait du code "simplifié" :
from PyQt4 import QtCore, QtGui import sys class Window(QtGui.QMainWindow): def __init__(self): super(Window, self).__init__() QtGui.QWidget.__init__(self, None) mnuCde=self.menuBar().addMenu('Cde') lib=['Alain','Bernard','Claude'] for lig in range(0,len(lib)): mnuCde.addAction( lib[lig],self.choix ) def choix(self): print('ok') app=QtGui.QApplication(sys.argv) win=Window() win.show() sys.exit(app.exec_())
dans choix(), j'aimerais afficher le texte de la ligne cliquée du menu
( Alain, Bernard ou Claude ) j'ai tenté plein de trucs, je n'y arrive pas.
comment passer en paramètre "texte du menu cliqué" ?
fonction choix() unique, addAction créé comme dans l'exemple
si vous pouviez m'aider
merci
A voir également:
- [pyqt] menu
- Menu déroulant excel - Guide
- Canon quick menu - Télécharger - Utilitaires
- Windows 11 menu contextuel classique - Guide
- Windows 11 menu démarrer classique - Guide
- Réinitialiser menu démarrer windows 10 - Guide
2 réponses
Bonjour,
Je n'ai pas trouvé comment récupérer le texte de l'item à partir des méthodes PyQt, mais j'ai une solution: passer un paramètre avec partial du module functools. On modifie le code comme suit:
Je n'ai pas trouvé comment récupérer le texte de l'item à partir des méthodes PyQt, mais j'ai une solution: passer un paramètre avec partial du module functools. On modifie le code comme suit:
import sys from functools import partial from PyQt4 import QtCore, QtGui ############################################################################# class Window(QtGui.QMainWindow): def __init__(self, parent=None): super(Window, self).__init__(parent) self.mnuCde=self.menuBar().addMenu('Cde') lib=['Alain','Bernard','Claude'] for lig in range(0,len(lib)): self.mnuCde.addAction(lib[lig], partial(self.choix, lib[lig])) def choix(self, texte): print(texte) ############################################################################# app=QtGui.QApplication(sys.argv) win=Window() win.show() sys.exit(app.exec_())