banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 23 May 2018 08:12

laripaille
Participant occasionnel
Date d'inscription: 15 Nov 2008
Messages: 11

QGIS 2.18 & Python: appeler une méthode sur un click bouton

Mes premiers pas.... dans le monde de python

Objectif : développer au plus vite une petite extension d'automatisation des tâches

Très basiquement, j'ai suivi une vidéo pour ajouter une extension = pas de problème

avec Qt créator, j'ajoute un bouton "" et une zone texte

dans mon fichier essai04.py j'ajoute ma fonction :

Code:

    def compterecord(self):
        layer = self.iface.activeLayer()
        msg = "Nombre d'enregistrement de la table :" + "," + str(layer.featureCount())
        self.dlg.textEdit.setText(msg)

puis j'ajoute dans le def run(self) la ligne :

Code:

self.dlg.pushButton.clicked.connect(self.compterecord)

soit le code complet de def run(self)

Code:

def run(self):
        """Run method that performs all the real work"""
        # show the dialog
        self.dlg.show()
        # self.dlg.pushButton.clicked.connect(self.compterecord)
        # Run the dialog event loop
        result = self.dlg.exec_()
        self.dlg.pushButton.clicked.connect(self.compterecord)
        # See if OK was pressed
        if result:
            # Do something useful here - delete the line containing pass and
            # substitute with your code.
            pass

lorsque j’exécute le fenêtre arrive bien mais j'ai l'erreur suivante

AttributeError: ESSAI01 instance has no attribute 'compterecord'
Traceback (most recent call last):
  File "C:/Users/Geop31/.qgis2/python/plugins\ESSAI01\ESSAI04.py", line 194, in run
    self.dlg.pushButton.clicked.connect(self.compterecord)
AttributeError: ESSAI01 instance has no attribute 'compterecord'


si quelqu'un à une piste....

Hors ligne

 

#2 Wed 23 May 2018 09:39

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS 2.18 & Python: appeler une méthode sur un click bouton

Bonjour,
self.compterecord()...

Hors ligne

 

#3 Wed 23 May 2018 15:14

laripaille
Participant occasionnel
Date d'inscription: 15 Nov 2008
Messages: 11

Re: QGIS 2.18 & Python: appeler une méthode sur un click bouton

Bonjour SANTANA et merci pour ton retour

j'ai donc modifié le code

Code:

    def compterecord(self):
        layer = self.iface.activeLayer()
        msg = "Nombre d'enregistrement de la table :" + "," + str(layer.featureCount())
        print msg
        self.dlg.textEdit.setText(msg)
        
    def run(self):
        """Run method that performs all the real work"""
        # show the dialog
        self.dlg.show()
         # Run the dialog event loop
        result = self.dlg.exec_()
        self.dlg.pushButton.clicked.connect(self.compterecord())
        # See if OK was pressed
        if result:
            # Do something useful here - delete the line containing pass and
            # substitute with your code.
            pass

J'ai toujours une erreur et pas de retour dans ma zone texte nommée :  textEdit

2018-05-23T15:13:17    1    Traceback (most recent call last):
              File "C:/Users/Geop31/.qgis2/python/plugins\ESSAI01\ESSAI04.py", line 193, in run
                self.dlg.pushButton.clicked.connect(self.compterecord())
            AttributeError: ESSAI01 instance has no attribute 'compterecord'


.....????

Hors ligne

 

#4 Wed 23 May 2018 18:28

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS 2.18 & Python: appeler une méthode sur un click bouton

Il y a peut-être un truc à chercher du côté de la relation entre ESSAI01 et ESSAI04? Que représente ESSAI01?
Désolé de ne pas apporter de réponse, je ne suis moi-même pas un Pythonista...

Hors ligne

 

#5 Wed 23 May 2018 18:32

gvellut
Participant actif
Lieu: Annecy
Date d'inscription: 13 Apr 2006
Messages: 112
Site web

Re: QGIS 2.18 & Python: appeler une méthode sur un click bouton

Tu peux poster l'intégralité du fichier ESSAI04.py ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB