Ist es möglich, eine Attributtabelle über die Python-Konsole oder über ein Python-Skript in QGIS zu öffnen?
11
Ja, zumindest mit der neuesten Master-Version und 1.8. Es ist eine Methode, die über iface verfügbar gemacht wird
// C++ (signature)
void showAttributeTable (QgsVectorLayer *l)
# PyQGIS (example)
iface.showAttributeTable(iface.activeLayer())
Sie benötigen einen bereits vorhandenen Verweis auf einen QgsVectorLayer.
Für die direkte Bearbeitung von Features ist es auch eine Methode, die über iface verfügbar gemacht wird :
// C++ (signature)
bool openFeatureForm (QgsVectorLayer *l, QgsFeature &f, bool updateFeatureOnly=false)
# PyQGIS (example)
iface.openFeatureForm(iface.activeLayer(), feature, False)
In beiden Fällen benötigen Sie einen bereits vorhandenen Verweis auf einen QgsVectorLayer und ein QgsFeature. Das geöffnete Feature-Formular und ob es bearbeitet werden kann, hängt von den App-Einstellungen ab und davon, ob sich der Layer des Features im Bearbeitungsmodus befindet.
iface
funktioniert nur für die Konsole oder Skripte, die in QGIS ausgeführt werden, einschließlich Plugins wie Processing. Für die Konsole wird sie der Einfachheit halber automatisch importiert, in allen anderen Fällen ist dieimport
von erforderlichqgis.utils
. Dies wird am Anfang des PyQGIS-Kochbuchs beschrieben . Sie könneniface
in einer eigenständigen App nicht darauf zugreifen , da die Python-Module die QGIS-Desktop-GUI-Anwendung nicht instanziieren.