Message posté par : Marcopololo
----------------------------------------
Bonjour,
Je suis arrivé à afficher l'attribut d'un champ de ma couche "parcelles
moyenmoutier".
Et j'ai plusieurs questions.
1. J'aurais aimé plutôt que de définir une couche précise, que le code s'applique
à la couche active mais lorsque j’utilise
-----------------
Code :
activeLayer()
-----------------
cela ne fonctionne pas j'ai une erreur QgsProject' object has no attribute
'activeLayer'. a priori si j'ai bien compris c'est parce que activeLayer
dépend de la class QgisInterface ?
2. J'ai tenté d'utilisé self.iface pour que se soit le id de la zone cliquée qui
s'affiche et non pas le premier champ de la table ? Faut il rajouter un paramètre
dans def display_point ?
Merci d'avance de votre aide
Marcopololo
-----------------
Code :
def display_point(self, point, button):
# Affiche les coordonnées du clic
self.dlg.hide() # cache la boite de dialogue
coords = "{:.3f}, {:.3f}".format(point.x(), point.y()) ## formatage des
coordonnées
#coord2 = "{:.4f}, {:.4f}".format(point.x(), point.y()) ## formatage
des coordonnées
layer = self.iface.activeLayer()
projet = QgsProject.instance()
couches = projet.mapLayers()
couchePAR = projet.mapLayersByName("parcelles moyenmoutier")[0]
enregistrements = couchePAR.getFeatures()
e = next(couchePAR.getFeatures())
numP = e.attributes()[1]
self.dlg.lineEdit.setText(coords) # affichage des coordonnées
self.dlg.NumParc.setText(numP) # affichage id parcelle
self.dlg.LineTest.append("Test")
self.dlg.show() # affiche de nouveau la boite de dialogue
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=372402#p372402
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net