I'm new to using Python to automate stuff in QGIS. I've used the following code to create a new map composer in QGIS:
# create a new composer c1test = iface.createNewComposer("mon premier composeur") # the command above is successful : a new composer window appears # the variable composeur1 will contain the composer itself composeur1 = c1test.composition() # x1, y1, x2, y2 are the dimensions of the composer. x1,y1 = 0,0 x2,y2 = composeur1.paperWidth(),composeur1.paperHeight() # I create a map item that will span across the whole area of the composer, # and I add it to the composer carte_composeur =QgsComposerMap(composeur1,x1,y1,x2,y2) composeur1.addItem(carte_composeur) # refresh composeur1.refreshItems
As you can see on the screenshot below, the map item is present in the composer, but it's blank. There is only a message "The map will be printed here" (in French in my case). Moreover, the panel "Item Properties" on the right-hand side is empty.
So my question is: how can I force my map item to be binded to the main QGIS canvas, as it is usually the case with map composers?
PS: I am aware of this similar thread but I didn't understand the answer and wasn't able to apply it in my case.