I'm trying to develop a similar script to How to make serial maps from template?. I'd like to modify elements in the composition programmatically for each map that I want to print. In developing this I'd like to see the elements I'm modifying in the console without printing off the map. I was expecting to see a new print composer window open when I ran the below code from the QGIS console in
2.18.2, but nothing happens (no error message appears either).
from qgis.PyQt.QtXml import QDomDocument def loadPrintComposerTemplate(template): '''Load a print composer template from provided filename argument Args: template: readable .qpt template filename Returns: myComposition: a QgsComposition loaded from the provided template mapSettings: a QgsMapSettings object associated with myComposition''' mapSettings = QgsMapSettings() myComposition = QgsComposition(mapSettings) # Load template from filename with open(template, 'r') as templateFile: myTemplateContent = templateFile.read() myDocument = QDomDocument() myDocument.setContent(myTemplateContent) return myComposition.loadFromTemplate(myDocument), mapSettings composer, mapSet = loadPrintComposerTemplate(template)
Is this code correct? Is there a way to make the print composer appear? Is there a better way to test my code?