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 :

[pyQT] Gestion des slots


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 61
    Points
    61
    Par défaut [pyQT] Gestion des slots
    Bonjour à tous,

    Je viens de commencer à utiliser PyQt.
    J'ai créé mon interface graphique avec qt Designer.
    J'ai généré le code python avec pyqt4.
    Ensuite j'ai crée ma classe ci-dessous afin d’hériter de la classe générée pour ajouter les actions derrière les boutons.

    Seulement je rencontre des problèmes.

    Lorsque j’essaye de définir mon action à réaliser j'ai une erreur:
    self.actionImporter.triggered.connect(self.actionImport())
    TypeError: argument 1 has unexpected type 'NoneType'
    Alors que si je remplace cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     self.actionImporter.triggered.connect(self.actionImport())
    par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      self.actionImporter.triggered.connect(main_ui.close)
    Çà fonctionne, donc mon héritage semble correct.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    from main_ui import Ui_main_ui
    from PyQt5 import QtGui, QtWidgets
    import sys
     
     
    class Main(Ui_main_ui):
        def __init__(self, parent=None):
            self.setupUi(parent)
            self._initSlotButtons()
     
        def _initSlotButtons(self):
            self.actionImporter.triggered.connect(self.actionImport())
        def actionImport(self):
            print("import")
            #self.filenameImport = QtWidgets.QFileDialog.getOpenFileName(Main, self, "ouvrir un fichier", "", filter="", options=0)
     
     
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        main_ui = QtWidgets.QMainWindow()
        ui = Main(main_ui)
        main_ui.show()
        sys.exit(app.exec_())
    1. Pouvez-vous me dire si mon héritage est correct ? si j'utilise les bonnes pratiques ?
    2. Pouvez-vous m'expliquer pourquoi çà ne fonctionne pas afin de remédier à ce problème ?

    D'avance merci

    Bonne soirée.

    Guillaume

  2. #2
    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,

    Enlève les parenthèses de self.actionImport sinon c'est le retour de cette fonction qui devient le slot, c'est-à-dire None.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Merci VinsS,

    Ca fonctionne parfaitement.

    Bonne journée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/07/2015, 11h41
  2. Gestion des Slots dans Visual Studio
    Par Geoffroy123 dans le forum Qt
    Réponses: 4
    Dernier message: 11/06/2010, 13h50
  3. Réponses: 3
    Dernier message: 21/03/2006, 10h37
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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