<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 20 Oct 2024, 9:16 am Asim al-sofi via QGIS-User, <<a href="mailto:qgis-user@lists.osgeo.org">qgis-user@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Hi all</div><div>Iam trying to add legend to the print layout of a polyline that have been created using QgsLayoutItemPolyline.</div><div>I managed to draw the polyline on the map composer and play with its properties, but could not add the corresponding line to the legend.</div><div>Any ideas/suggestions?</div><div>The code that corresponds to the legend is:</div><div><br></div><div>polygon2 = QPolygonF()</div><div>polygon2.append(QPointF(50.0, 150.0))</div><div>polygon2.append(QPointF(150.0, 80.0))</div><div>polygon2.append(QPointF(250.0, 100.0))</div><div>polygon2.append(QPointF(10.0, 200.0))</div><div>layoutItemPolyline = QgsLayoutItemPolyline(polygon2, layout)</div><div>layout.addLayoutItem(layoutItemPolyline)</div><div><br></div><div>props = {}</div><div>props["color"] = "green"</div><div>props["style"] = "solid"</div><div><br></div><div>symbol = QgsLineSymbol.createSimple(props)<br></div><div>layoutItemPolyline.setSymbol(symbol)</div><div>legend = QgsLayoutItemLegend(layout)<br></div><div>legend.setAutoUpdateModel(False)<br></div><div>root = legend.model().rootGroup()</div><div>legend = QgsLayoutItemLegend(layout)<br></div><div>legend.setTitle("Legend")</div><div>legend.setAutoUpdateModel(False)<br></div><div>legend.setLinkedMap(map)<br></div><div>legend.setLegendFilterByMapEnabled(True)<br></div><div>layout.addLayoutItem(legend)<br></div><div>legend.attemptMove(QgsLayoutPoint(235, 36, QgsUnitTypes.LayoutMillimeters))</div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Add a temporary memory layer to the project with the same line symbol as the polyline item, then add that temporary layer to the legend.</div><div dir="auto"><br></div><div dir="auto">(This trick also works for adding additional points or fills to a legend)</div><div dir="auto"><br></div><div dir="auto">Nyall</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><br></div><div><br></div><div>Thanks in advance</div><div>Kind regards,</div><div>Asim</div></div></div>
_______________________________________________<br>
QGIS-User mailing list<br>
<a href="mailto:QGIS-User@lists.osgeo.org" target="_blank" rel="noreferrer">QGIS-User@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-user</a><br>
</blockquote></div></div></div>