def prepare_renderer(levels, inter_time, lenpoly): cats = [('{} - {} min'.format(levels[i] - inter_time, levels[i]), levels[i] - inter_time, levels[i]) for i in range(lenpoly)] # label, lower bound, upper bound colors = get_isochrones_colors(len(levels)) ranges = [] for ix, cat in enumerate(cats): symbol = QgsFillSymbol() symbol.setColor(QColor(colors[ix])) ranges.append(QgsRendererRange(cat[1], cat[2], symbol, cat[0])) return QgsGraduatedSymbolRenderer('max', ranges)
def testReadWriteSettings(self): p = QgsProject() l = QgsLayout(p) collection = l.pageCollection() fill = QgsSimpleFillSymbolLayer() fill_symbol = QgsFillSymbol() fill_symbol.changeSymbolLayer(0, fill) fill.setColor(Qt.green) fill.setStrokeColor(Qt.red) fill.setStrokeWidth(6) page = QgsLayoutItemPage(l) page.setPageSize('A4') page.setPageStyleSymbol(fill_symbol.clone()) self.assertEqual(collection.pageNumber(page), -1) collection.addPage(page) # add a second page page2 = QgsLayoutItemPage(l) page2.setPageSize('A5') fill_symbol.setColor(Qt.blue) page2.setPageStyleSymbol(fill_symbol.clone()) collection.addPage(page2) doc = QDomDocument("testdoc") elem = doc.createElement("test") self.assertTrue(collection.writeXml(elem, doc, QgsReadWriteContext())) l2 = QgsLayout(p) collection2 = l2.pageCollection() self.assertTrue( collection2.readXml(elem.firstChildElement(), doc, QgsReadWriteContext())) self.assertEqual(collection2.pageCount(), 2) self.assertEqual( collection2.page(0).pageStyleSymbol().symbolLayer( 0).color().name(), '#00ff00') self.assertEqual( collection2.page(0).pageStyleSymbol().symbolLayer( 0).strokeColor().name(), '#ff0000') self.assertEqual( collection2.page(1).pageStyleSymbol().symbolLayer( 0).color().name(), '#0000ff') self.assertEqual( collection2.page(1).pageStyleSymbol().symbolLayer( 0).strokeColor().name(), '#ff0000')