É possível abrir uma tabela de atributos no console Python ou através de um script Python no QGIS?
11
Sim, você pode, pelo menos com a última versão principal e 1.8. É um método exposto via iface
// C++ (signature)
void showAttributeTable (QgsVectorLayer *l)
# PyQGIS (example)
iface.showAttributeTable(iface.activeLayer())
Você precisará de uma referência preexistente a um QgsVectorLayer.
Para edição direta de recursos, também é um método exposto via iface :
// C++ (signature)
bool openFeatureForm (QgsVectorLayer *l, QgsFeature &f, bool updateFeatureOnly=false)
# PyQGIS (example)
iface.openFeatureForm(iface.activeLayer(), feature, False)
Você precisará de uma referência preexistente a um QgsVectorLayer e um QgsFeature nos dois casos. O formulário do recurso aberto e se é editável dependem das configurações do aplicativo e se a camada do recurso está no modo de edição.
iface
apenas funciona para a consola ou scripts executados a partir do QGIS, incluindo plugins como Processing. Para o console, ele é importado automaticamente por conveniência, com todos os outros casos precisandoimport
deqgis.utils
. Isso é descrito no início do livro de receitas do PyQGIS . Você não pode acessariface
em um aplicativo independente, pois os módulos Python não instanciam o aplicativo GUI da área de trabalho do QGIS.