def testSize(self): # test size and setSize # create a marker symbol with a single layer markerSymbol = QgsMarkerSymbol() markerSymbol.deleteSymbolLayer(0) markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=10)) self.assertEqual(markerSymbol.size(), 10) markerSymbol.setSize(20) self.assertEqual(markerSymbol.size(), 20) self.assertEqual(markerSymbol.symbolLayer(0).size(), 20) # add additional layers markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=10)) markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=30)) self.assertEqual(markerSymbol.size(), 30) markerSymbol.setSize(3) self.assertEqual(markerSymbol.size(), 3) # layer sizes should maintain relative size self.assertEqual(markerSymbol.symbolLayer(0).size(), 2) self.assertEqual(markerSymbol.symbolLayer(1).size(), 1) self.assertEqual(markerSymbol.symbolLayer(2).size(), 3)
def testSize(self): # test size and setSize ms = QgsMapSettings() extent = QgsRectangle(100, 200, 100, 200) ms.setExtent(extent) ms.setOutputSize(QSize(400, 400)) context = QgsRenderContext.fromMapSettings(ms) context.setScaleFactor(96 / 25.4) # 96 DPI ms.setExtent(QgsRectangle(100, 150, 100, 150)) ms.setOutputDpi(ms.outputDpi() * 2) context2 = QgsRenderContext.fromMapSettings(ms) context2.setScaleFactor(300 / 25.4) # create a marker symbol with a single layer markerSymbol = QgsMarkerSymbol() markerSymbol.deleteSymbolLayer(0) markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=10)) self.assertEqual(markerSymbol.size(), 10) self.assertAlmostEqual(markerSymbol.size(context), 37.795275590551185, 3) self.assertAlmostEqual(markerSymbol.size(context2), 118.11023622047244, 3) markerSymbol.setSize(20) self.assertEqual(markerSymbol.size(), 20) self.assertEqual(markerSymbol.symbolLayer(0).size(), 20) self.assertAlmostEqual(markerSymbol.size(context), 75.59055118, 3) self.assertAlmostEqual(markerSymbol.size(context2), 236.2204724409449, 3) # add additional layers markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=10)) markerSymbol.appendSymbolLayer( QgsSimpleMarkerSymbolLayer(QgsSimpleMarkerSymbolLayerBase.Star, color=QColor(255, 0, 0), strokeColor=QColor(0, 255, 0), size=30)) self.assertEqual(markerSymbol.size(), 30) self.assertAlmostEqual(markerSymbol.size(context), 113.38582677165356, 3) self.assertAlmostEqual(markerSymbol.size(context2), 354.33070866141736, 3) markerSymbol.setSize(3) self.assertEqual(markerSymbol.size(), 3) # layer sizes should maintain relative size self.assertEqual(markerSymbol.symbolLayer(0).size(), 2) self.assertEqual(markerSymbol.symbolLayer(1).size(), 1) self.assertEqual(markerSymbol.symbolLayer(2).size(), 3) # symbol layer in different size markerSymbol.symbolLayer(1).setSize(15) self.assertAlmostEqual(markerSymbol.size(context), 56.69291338582678, 3) self.assertAlmostEqual(markerSymbol.size(context2), 177.16535433070868, 3) markerSymbol.symbolLayer(1).setSizeUnit(QgsUnitTypes.RenderPixels) self.assertAlmostEqual(markerSymbol.size(context), 15, 3) self.assertAlmostEqual(markerSymbol.size(context2), 35.43307086614173, 3) markerSymbol.symbolLayer(1).setSize(45) self.assertAlmostEqual(markerSymbol.size(context), 45, 3) self.assertAlmostEqual(markerSymbol.size(context2), 45, 3)