Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Tue 18 June 2019 14:29

aknleo
Participant occasionnel
Lieu: Libreville
Date d'inscription: 15 Apr 2014
Messages: 22

QGIS: code pyqgis filtrer sur couche

Bonjour,
Je suis nouveau dans qgis et pyqgis.
Je suis à la recherche du code pyqgis qui me permet de filtrer sur une couche de mon projet.
J'ai essayé le code suivant:

FParcel = QgsMapLayerRegistry.instance().mapLayersByName('Parcelles voisines')[0]
Parcel = iface.setActiveLayer(FParcel)

Ch_SPC = 'SPC'
field = FParcel.fieldNameIndex(Ch_SPC)
##
SPC_Pcl = '10111'

expr = QgsExpression(Ch_SPC + ' LIKE ' + SPC_Pcl)
request.setFilterExpression(expr)
iface.showAttributeTable(FParcel)

Fin de mon code
Mais j'ai toujours toutes les données de ma couche.
Merci d'avance pour vos réponses.

Hors ligne

 

#2 Wed 19 June 2019 15:50

trovez
Participant occasionnel
Lieu: Nantes
Date d'inscription: 17 Sep 2007
Messages: 24

Re: QGIS: code pyqgis filtrer sur couche

Bonjour,

Si le champ est de type texte,
expr = QgsExpression(Ch_SPC + ' LIKE ' + SPC_Pcl)
renvoie
<QgsExpression: 'SPC LIKE 10111'>
ce qui n'est pas la forme pour un filtre sur un champ texte.

Il faudrait obtenir
"SPC LIKE '10111'"
la valeur étant entourée par des guillemets simples.

essaye avec :
expr = QgsExpression("Ch_SPC  LIKE ' %s '" % (SPC_Pcl))

Bonne journée.

Hors ligne

 

#3 Thu 20 June 2019 08:56

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: code pyqgis filtrer sur couche

Bonjour,
Au delà de la remarque de trovez,
quel est le but ? Afficher la table attributaire filtrée?

Code:

filter = "Ch_SPC  LIKE ' %s '" % (SPC_Pcl)
iface.showAttributeTable(FParcel, filter)

Ceci doit permettre de filtrer le contenu de la table attributaire filtrée.
Votre code sert surtout à boucler sur les éléments qui répondent aux critères.

Hors ligne

 

#4 Thu 20 June 2019 12:56

aknleo
Participant occasionnel
Lieu: Libreville
Date d'inscription: 15 Apr 2014
Messages: 22

Re: QGIS: code pyqgis filtrer sur couche

Merci à tous,
j'ai essayé la proposition de trovez et ça marche.

Hors ligne

 

Pied de page des forums

Powered by FluxBB