Pages: 1
- Sujet précédent - QGIS 2.0.1 : Modification propriétés d'une couche avec console python - Sujet suivant
#1 Tue 10 December 2013 12:47
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
Je travaille sur un plugin qui aura pour mission de faire en sorte que les étapes suivantes soient « transparentes » pour l’utilisateur avec un clic :
1. Créer une table avec des champs prédéfinis
2. Enregistrer cette table dans postgis puis l’ouvrir dans Qgis
3. Modifier les propriétés (surtout les propriétés de l’onglet champs) de cette couches pour :
- Paramétrer les « Outils d’édition » (ou edit widget) des champs
- Associer un formulaire réalisé avec Qt Creator
Pour les étapes 1 et 2 c’est OK
En revanche malgré les recherches effectuées dans le Cookbook de qgis et sur les forums, je ne trouve pas les fonctions qui me permettront de réaliser l’étape 3 à l’aide de la console python…
Je viens donc vers vous pour savoir si un (ou plusieurs) d’entre vous peuvent éclairer ma lanterne…
Merci d’avance
Guillaume
Hors ligne
#2 Tue 07 January 2014 10:56
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
N'ayant toujours pas trouvé la solution, je me permet de relancer le post.
N'hésitez pas à me dire si vous souhaitez plus d'informations ou si je dois reformuler ma question.
Merci encore
Guillaume
Hors ligne
#3 Wed 05 February 2014 12:00
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
J'ai trouvé une solution au problème... qui est toute simple en plus !
L'ensemble des propriétés de la couche pouvant être enregistrées dans un fichier style (.qml), il suffit donc :
- De créer un style avec les paramétrages voulus
- D'enregistrer le style
- De lier le style à notre couche au moment de son chargement dans QGIS, à l'aide du code suivant.
Code:
ma_couche.loadNamedStyle("C:/teststyle.qml")
Toutefois j'ai remarqué que l'on pouvait enregistrer les styles directement dans une BD PostGis, mais je n'arrive pas à les récupérer à l'aide de la fonction ma_couche.loadNamedStyle().
Connaissez vous la syntaxe ou les termes à utiliser pour lier une style PostGis à une couche ?
D'avance je vous remercie
Guillaume
Hors ligne
#4 Wed 05 February 2014 13:42
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3929
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
Je ne sais pas si ça répond directement à ta question mais tu peux aussi indiquer le style en question comme étant le style par défaut de ta couche. Donc par défaut, c'est avec le paramétrage du style qu'elle s'ouvrira. Sauf si t'as différents styles que tu comptes prédéfinir, c'est peut-être le plus simple, non?
Hors ligne
#5 Wed 05 February 2014 15:22
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
J'avais déjà penser à cette solution mais dans ma situation, je créé une nouvelle couche à partir du plugin donc elle ne peut pas avoir de style par défaut avant de lui avoir attribuer un style une première fois (qu'il soit par défaut ou non).
Le style par défaut est une solution pour pérenniser l'utilisation du style mais pas pour l'attribuer à la couche lors de sa création.
Hors ligne
#6 Wed 05 February 2014 16:07
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3929
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Ah oui, c'est vrai, j'avais zappé le début de ta démarche.
Pour ton style, il semble qu'il existe loadnamedstylefromdb. C'est peut-être ce qu'il te faut
Hors ligne
#7 Thu 06 February 2014 15:01
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
J'ai tenté mais c'est un échec... pour le moment
Dans la doc on me demande 3 arguments :
Code:
loadNamedStyleFromDb (const QString & db, const QString & theURI, QString & qml)
mais lorsque je tente dans la console on ne me demande que 2 arguments... donc je ne vois pas trop comment lui faire comprendre quel style il faut utiliser...
Code:
TypeError: QgsMapLayer.loadNamedStyleFromDb(QString, QString) -> (bool, QString): too many arguments
Après je ne sais pas, mais en faisant des recherches, j'ai eu l’impression que cette fonction était utilisée pour les styles prédéfinis de QGIS contenus dans une base sqlite, non ?
Merci de votre aide
Guillaume
Dernière modification par CGuillaume (Thu 06 February 2014 15:08)
Hors ligne
#8 Tue 25 March 2014 11:09
- CGuillaume
- Participant actif
- Lieu: Annecy
- Date d'inscription: 3 Aug 2011
- Messages: 59
Re: QGIS 2.0.1 : Modification propriétés d'une couche avec console python
Bonjour,
SANTANA je reviens vers vous pour savoir si vous saviez comment définir un style comme étant le style par défaut à l'aide de la console python ?
Je bloque un peu...
Merci d'avance
Guillaume
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.0.1 : Modification propriétés d'une couche avec console python - Sujet suivant