Is it possible to open an attribute table from the Python Console or through a Python script in QGIS?
Asked
Active
Viewed 5,343 times
1 Answers
16
Yes you can, at least with the latest master version and 1.8. It is a method exposed via iface
// C++ (signature)
void showAttributeTable (QgsVectorLayer *l)
PyQGIS (example)
iface.showAttributeTable(iface.activeLayer())
You will need a preexisting reference to a QgsVectorLayer.
For direct editing of features it is also a method exposed via iface:
// C++ (signature)
bool openFeatureForm (QgsVectorLayer *l, QgsFeature &f, bool updateFeatureOnly=false)
PyQGIS (example)
iface.openFeatureForm(iface.activeLayer(), feature, False)
You will need a preexisting reference to a QgsVectorLayer and a QgsFeature in both cases. The feature form opened and whether it is editable are dependent upon app settings and whether the feature's layer is in edit mode.
ifaceonly works for the console or scripts run from within QGIS, including plugins like Processing. For the console, it is auto-imported for convenience, with all other cases needing theimportofqgis.utils. This is described at the beginning of the PyQGIS cookbook. You can not accessifacein a standalone app, since the Python modules do not instantiate the QGIS desktop GUI application. – dakcarto Nov 25 '14 at 18:27