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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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