I am facing a problem with the new Layout API while implementing a plugin for QGIS 3. Starting point is a layout template in qpt-Format, which contains different elements like (attribute) tables, map, labels and scale-bar. This template is loaded into the Layout Manager with the code below.
During import I want to make dynamic changes to the layout elements like filling tables with new rows or editing the label text.
Any idea on how to address elements of the layout during or after the import, in order to edit the content of labels and tables?
project = QgsProject.instance()
composition = QgsPrintLayout(project)
document = QDomDocument()
# read template content
template_file = open('C:/location/of/template.qpt')
template_content = template_file.read()
template_file.close()
document.setContent(template_content)
# load layout from template and add to Layout Manager
composition.loadFromTemplate(document, QgsReadWriteContext())
project.layoutManager().addLayout(composition)
# maybe using QgsLayoutItem???
# layoutItem = composition.itemById("1")