Pages: 1
- Sujet précédent - QGIS 2.18 & Python: appeler une méthode sur un click bouton - Sujet suivant
#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
Pages: 1
- Sujet précédent - QGIS 2.18 & Python: appeler une méthode sur un click bouton - Sujet suivant