<div dir="ltr"><div><div><div>Hi all,<br><br></div>I'm creating a standalone application (=viewer) in pyqgis with some essentials tools like zoom, plot rasters and vectors, wms displaying and map renderer.<br></div>When I want to create a map renderer with the componer and save it as a .png, all the layers with the legend are visible but not the legend of the wms layer.. And I really don't know why.<br></div><div>I've got another problem: I want to set the font of the composer legend into transparency but the command doesn't work at all:<br> legend.setFontColor(QColor(255,255,255,0)). May be I miss something..<br></div><div>Is anybody has a solution, it would helps me a lot.<br></div><div>Thanks,<br></div><div>Diane<br></div><div><br></div>this is the snippet of my code which do the componer:<br><br> def actionComp(self):<br>        #create composition with composer map<br>        mapRenderer = iface.mapCanvas().mapRenderer()<br>        myMap = QgsMapSettings()<br>        mapRectangle = myMap.fullExtent()<br>        myMap.setExtent(mapRectangle)<br>        myMap.setOutputSize(QSize(1600,1200))<br>        myComposition = QgsComposition(mapRenderer)<br>        myComposition.setPlotStyle(QgsComposition.Print)<br>        x,y = 0,0<br>        w,h = myComposition.paperWidth(), myComposition.paperHeight()<br>        composerMap = QgsComposerMap(myComposition,x,y,w,h)<br>        composerMap.gridEnabled()<br>        myComposition.addComposerMap(composerMap)<br>        composerMap.setLayerSet(myMap.layers()<br>        myComposition.addItem(composerMap)<br>        #legend<br>        legend = QgsComposerLegend(myComposition)<br>        myComposition.addItem(legend)<br>        legend.setItemPosition (0,10)<br>        #legend.setFontColor(QColor(255,255,255,0))<br>        legend.setScale(.3)   <br>        legend.model().setLayerSet(mapRenderer.layerSet())<br>        # Scale bar <br>        item = QgsComposerScaleBar(myComposition)<br>        myComposition.addComposerScaleBar(item)<br>        item.setStyle('Numeric') <br>        item.setItemPosition(0,100)<br>        item.update()<br>        item.setComposerMap(composerMap)<br>        myComposition.addItem(item)<br>        output_png = "/Users/test.png"<br>        myImage = myComposition.printPageAsRaster(0)<br>        myImage.save(output_png)<br>        composerLabel.setItemPosition(20, 10)<br>        composerLabel.setItemPosition(100, 10, 100, 30)<br>        dpi = myComposition.printResolution()<br>        dpmm = dpi /600<br>        width = int(dpmm * myComposition.paperWidth())<br>        height = int(dpmm * myComposition.paperHeight())<br>        myComposition.setPaperSize(width, height)<br>        myComposition.setPrintResolution(dpi)<br>        # create output image and initialize it<br>        image = QImage(QSize(width, height), QImage.Format_ARGB32)<br>        image.setDotsPerMeterX(dpmm * 1000)<br>        image.setDotsPerMeterY(dpmm * 1000)<br>        image.fill(0)<br>        #render the composition<br>        imagePainter = QPainter(image)<br>        sourceArea = QRectF(0, 0, myComposition.paperWidth(), myComposition.paperHeight())<br>        targetArea = QRectF(0, 0, width, height)<br>        myComposition.render(imagePainter, targetArea, sourceArea)<br>        imagePainter.end()<br>        image.save("/Users/test.png")<br><br></div>