IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Comment connecter des actions du menu file GUI créer par Designer PyQt5 ? [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Comment connecter des actions du menu file GUI créer par Designer PyQt5 ?
    Bonjour,

    cela fait un moment que je cherche un bon exemple pour comprendre comment créer la connexion entre des composants de la GUI créer par Designer et des fonctions à coder. J'ai trouvé un exemple en PyQt4 et par forcément compatible avec PyQt5 ! Je n'ai pas trouvé de réponse sur le forum (mal cherché ?)

    Quand il s'agit de relier une action d'un bouton j'ai trouvé l'information. Mais il n'y a pas que des boutons sur une page (menu, image, graph) ! J'utilise l'IDE Spyder qui me permet de tester mon code sur un noyau distant (Raspberry pi3).

    Je peine à trouver les fonctions disponibles à chaque Widget !

    Voila la ligne de code qui me permet de récupérer l'action clickbutton:

    self.configOKButton.clicked.connect(lambda: self.pressconfigOKButtonSendCmd())

    et je définie ma fonction:
    # functions to call for the tab config
    def pressconfigOKButtonSendCmd(self):
    print ("Test: commande du bouton configOK")


    Comment faire pour une action du menu bar ?

    ça ne marche pas => self.fileActionQuit.triggerred.connect(lambda: self.pressMenuFileActionQuit())

    erreur de compilation:

    File "/home/mab/GPHM/GUI/gphmdlg.py", line 46, in __init__
    self.fileActionQuit.triggerred.connect(lambda: self.pressMenuFileActionQuit())

    AttributeError: 'QAction' object has no attribute 'triggerred'

    j'avance dans mes recherches:
    https://qt.developpez.com/doc/4.7/qaction/

    dans la Class UI (créer via pyuic5) l'action a été créée
    self.menuFile.addAction(self.fileActionQuit) => contenu dans Class Ui_MainWindow

    Faut il encore savoir comment connecter !

    Merci d'avance pour votre aide

    Marc
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    auto-réponse:

    utiliser la liste déroulante pour appeler les méthodes et ça ira mieux un seul "r" à triggered !!
    self.fileActionQuit.triggered.connect(lambda: self.pressMenuFileActionQuit())


    Je laisse mon message si ça peut être util pour d'autres personnes.

    Ma difficulté première c'est de connaitre les méthodes qu'il faut utiliser. La doc sur internet est vaste mais souvent trop vague.


    Citation Envoyé par mbeuret Voir le message
    Bonjour,

    cela fait un moment que je cherche un bon exemple pour comprendre comment créer la connexion entre des composants de la GUI créer par Designer et des fonctions à coder. J'ai trouvé un exemple en PyQt4 et par forcément compatible avec PyQt5 ! Je n'ai pas trouvé de réponse sur le forum (mal cherché ?)

    Quand il s'agit de relier une action d'un bouton j'ai trouvé l'information. Mais il n'y a pas que des boutons sur une page (menu, image, graph) ! J'utilise l'IDE Spyder qui me permet de tester mon code sur un noyau distant (Raspberry pi3).

    Je peine à trouver les fonctions disponibles à chaque Widget !

    Voila la ligne de code qui me permet de récupérer l'action clickbutton:

    self.configOKButton.clicked.connect(lambda: self.pressconfigOKButtonSendCmd())

    et je définie ma fonction:
    # functions to call for the tab config
    def pressconfigOKButtonSendCmd(self):
    print ("Test: commande du bouton configOK")


    Comment faire pour une action du menu bar ?

    ça ne marche pas => self.fileActionQuit.triggerred.connect(lambda: self.pressMenuFileActionQuit())

    erreur de compilation:

    File "/home/mab/GPHM/GUI/gphmdlg.py", line 46, in __init__
    self.fileActionQuit.triggerred.connect(lambda: self.pressMenuFileActionQuit())

    AttributeError: 'QAction' object has no attribute 'triggerred'

    j'avance dans mes recherches:
    https://qt.developpez.com/doc/4.7/qaction/

    dans la Class UI (créer via pyuic5) l'action a été créée
    self.menuFile.addAction(self.fileActionQuit) => contenu dans Class Ui_MainWindow

    Faut il encore savoir comment connecter !

    Merci d'avance pour votre aide

    Marc

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Une remarque, tes lambda sont tout à fait inutiles.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut lambda pas utile !
    je vais revoir mes sources, j'avais cru comprendre que c'est mieux de passer par "lambda" !

    Merci pour l'info.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment supprimer des actions du menu contextuel
    Par RCPien dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 30/07/2012, 19h11
  2. [CSS 2.1] Comment attribuer des priorités à mon menu à 3 niveau
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/10/2009, 10h09
  3. Réponses: 1
    Dernier message: 27/03/2008, 13h59
  4. Réponses: 1
    Dernier message: 07/11/2007, 10h06
  5. [MFC] Comment mettre des icones au menu ?
    Par ksoft dans le forum MFC
    Réponses: 1
    Dernier message: 10/05/2006, 09h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo