Est-il possible d'ouvrir une table attributaire depuis la console Python ou via un script Python dans QGIS?
11
Oui, vous le pouvez, au moins avec la dernière version principale et la 1.8. C'est une méthode exposée via iface
// C++ (signature)
void showAttributeTable (QgsVectorLayer *l)
# PyQGIS (example)
iface.showAttributeTable(iface.activeLayer())
Vous aurez besoin d'une référence préexistante à un QgsVectorLayer.
Pour l'édition directe de fonctionnalités, c'est également une méthode exposée via iface :
// C++ (signature)
bool openFeatureForm (QgsVectorLayer *l, QgsFeature &f, bool updateFeatureOnly=false)
# PyQGIS (example)
iface.openFeatureForm(iface.activeLayer(), feature, False)
Vous aurez besoin d'une référence préexistante à QgsVectorLayer et à QgsFeature dans les deux cas. Le formulaire d'entité ouvert et s'il est modifiable dépend des paramètres de l'application et si le calque de l'entité est en mode édition.
iface
ne fonctionne que pour la console ou les scripts exécutés à partir de QGIS, y compris les plugins comme Processing. Pour la console, il est importé automatiquement pour plus de commodité, tous les autres cas nécessitant leimport
ofqgis.utils
. Ceci est décrit au début du livre de recettes PyQGIS . Vous ne pouvez pas y accéderiface
dans une application autonome, car les modules Python n'instancient pas l'application graphique de bureau QGIS.