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.
passlorsque 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: 4138
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.
passJ'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: 4138
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


