本文整理汇总了Python中qgis.core.QgsPrintLayout.removeLayoutItem方法的典型用法代码示例。如果您正苦于以下问题:Python QgsPrintLayout.removeLayoutItem方法的具体用法?Python QgsPrintLayout.removeLayoutItem怎么用?Python QgsPrintLayout.removeLayoutItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsPrintLayout
的用法示例。
在下文中一共展示了QgsPrintLayout.removeLayoutItem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestQgsLayoutAtlas
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import removeLayoutItem [as 别名]
#.........这里部分代码省略.........
ptLayer = QgsVectorLayer("Point?crs=epsg:4326&field=attr:int(1)&field=label:string(20)", "points", "memory")
pr = ptLayer.dataProvider()
f1 = QgsFeature(1)
f1.initAttributes(2)
f1.setAttribute(0, 1)
f1.setAttribute(1, "Test label 1")
f1.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(-0.638, 48.954)))
f2 = QgsFeature(2)
f2.initAttributes(2)
f2.setAttribute(0, 2)
f2.setAttribute(1, "Test label 2")
f2.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(-1.682, 48.550)))
pr.addFeatures([f1, f2])
# categorized symbology
r = QgsCategorizedSymbolRenderer("attr", [QgsRendererCategory(1, QgsMarkerSymbol.createSimple({"color": "255,0,0", 'outline_color': 'black'}), "red"),
QgsRendererCategory(2, QgsMarkerSymbol.createSimple({"color": "0,0,255", 'outline_color': 'black'}), "blue")])
ptLayer.setRenderer(r)
QgsProject.instance().addMapLayer(ptLayer)
# add the point layer to the map settings
layers = self.layers
layers = [ptLayer] + layers
self.atlas_map.setLayers(layers)
self.overview.setLayers(layers)
# add a legend
legend = QgsLayoutItemLegend(self.layout)
legend.attemptMove(QgsLayoutPoint(200, 100))
# sets the legend filter parameter
legend.setLinkedMap(self.atlas_map)
legend.setLegendFilterOutAtlas(True)
self.layout.addLayoutItem(legend)
self.atlas.beginRender()
self.atlas.seekTo(0)
self.mLabel1.adjustSizeToText()
checker = QgsLayoutChecker('atlas_legend', self.layout)
myTestResult, myMessage = checker.testLayout()
self.report += checker.report()
self.assertTrue(myTestResult, myMessage)
self.atlas.endRender()
# restore state
self.atlas_map.setLayers([layers[1]])
self.layout.removeLayoutItem(legend)
QgsProject.instance().removeMapLayer(ptLayer.id())
def rotation_test(self):
# We will create a polygon layer with a rotated rectangle.
# Then we will make it the object layer for the atlas,
# rotate the map and test that the bounding rectangle
# is smaller than the bounds without rotation.
polygonLayer = QgsVectorLayer('Polygon', 'test_polygon', 'memory')
poly = QgsFeature(polygonLayer.fields())
points = [(10, 15), (15, 10), (45, 40), (40, 45)]
poly.setGeometry(QgsGeometry.fromPolygonXY([[QgsPointXY(x[0], x[1]) for x in points]]))
polygonLayer.dataProvider().addFeatures([poly])
QgsProject.instance().addMapLayer(polygonLayer)
# Recreating the layout locally
composition = QgsPrintLayout(QgsProject.instance())
composition.initializeDefaults()
# the atlas map
atlasMap = QgsLayoutItemMap(composition)
atlasMap.attemptSetSceneRect(QRectF(20, 20, 130, 130))
atlasMap.setFrameEnabled(True)
atlasMap.setLayers([polygonLayer])
atlasMap.setExtent(QgsRectangle(0, 0, 100, 50))
composition.addLayoutItem(atlasMap)
# the atlas
atlas = composition.atlas()
atlas.setCoverageLayer(polygonLayer)
atlas.setEnabled(True)
atlasMap.setAtlasDriven(True)
atlasMap.setAtlasScalingMode(QgsLayoutItemMap.Auto)
atlasMap.setAtlasMargin(0.0)
# Testing
atlasMap.setMapRotation(0.0)
atlas.beginRender()
atlas.first()
nonRotatedExtent = QgsRectangle(atlasMap.extent())
atlasMap.setMapRotation(45.0)
atlas.first()
rotatedExtent = QgsRectangle(atlasMap.extent())
self.assertLess(rotatedExtent.width(), nonRotatedExtent.width() * 0.9)
self.assertLess(rotatedExtent.height(), nonRotatedExtent.height() * 0.9)
QgsProject.instance().removeMapLayer(polygonLayer)
示例2: testCombo
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import removeLayoutItem [as 别名]
#.........这里部分代码省略.........
combo.setItem(None)
self.assertIsNone(combo.currentItem())
self.assertEqual(len(spy), 14)
self.assertEqual(combo.currentIndex(), 0)
combo.setItem(label1)
self.assertEqual(combo.currentItem(), label1)
self.assertEqual(len(spy), 15)
self.assertEqual(combo.currentIndex(), 1)
label2 = QgsLayoutItemLabel(layout)
label2.setId('mmmm')
layout.addLayoutItem(label2)
self.assertEqual(combo.currentIndex(), 1)
self.assertEqual(combo.count(), 3)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'llll')
self.assertEqual(combo.itemText(2), 'mmmm')
self.assertEqual(len(spy), 15)
self.assertEqual(combo.currentLayout(), layout)
self.assertEqual(combo.currentItem(), label1)
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), label1)
self.assertEqual(combo.item(2), label2)
self.assertIsNone(combo.item(-1))
self.assertIsNone(combo.item(3))
combo.setItem(None)
self.assertIsNone(combo.currentItem())
self.assertEqual(len(spy), 16)
self.assertEqual(combo.currentIndex(), 0)
combo.setItem(label1)
self.assertEqual(combo.currentItem(), label1)
self.assertEqual(len(spy), 17)
self.assertEqual(combo.currentIndex(), 1)
label1.setId('nnnn')
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'mmmm')
self.assertEqual(combo.itemText(2), 'nnnn')
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), label2)
self.assertEqual(combo.item(2), label1)
self.assertEqual(combo.currentItem(), label1)
combo.setAllowEmptyItem(False)
self.assertEqual(combo.itemText(0), 'mmmm')
self.assertEqual(combo.itemText(1), 'nnnn')
self.assertEqual(combo.item(0), label2)
self.assertEqual(combo.item(1), label1)
self.assertEqual(combo.currentItem(), label1)
combo.setItem(label2)
label2.setId('oooo')
self.assertEqual(combo.itemText(0), 'nnnn')
self.assertEqual(combo.itemText(1), 'oooo')
self.assertEqual(combo.item(0), label1)
self.assertEqual(combo.item(1), label2)
self.assertEqual(combo.currentItem(), label2)
combo.setAllowEmptyItem(True)
layout.removeLayoutItem(label1)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'oooo')
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), label2)
self.assertEqual(combo.currentItem(), label2)
map = QgsLayoutItemMap(layout)
layout.addLayoutItem(map)
map.setId('pppp')
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'oooo')
self.assertEqual(combo.itemText(2), 'pppp')
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), label2)
self.assertEqual(combo.item(2), map)
self.assertEqual(combo.currentItem(), label2)
combo.setItemType(QgsLayoutItemRegistry.LayoutMap)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'pppp')
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), map)
self.assertIsNone(combo.currentItem())
combo.setItemType(QgsLayoutItemRegistry.LayoutLabel)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'oooo')
self.assertIsNone(combo.item(0))
self.assertEqual(combo.item(1), label2)
self.assertIsNone(combo.currentItem())
combo.setItemType(QgsLayoutItemRegistry.LayoutAttributeTable)
self.assertEqual(combo.itemText(0), '')
self.assertIsNone(combo.item(0))
self.assertIsNone(combo.currentItem())
combo.setAllowEmptyItem(False)
self.assertEqual(combo.count(), 0)
self.assertIsNone(combo.currentItem())
self.assertEqual(combo.currentIndex(), -1)