当前位置: 首页>>代码示例>>Python>>正文


Python QgsLayoutItemPolygon.type方法代码示例

本文整理汇总了Python中qgis.core.QgsLayoutItemPolygon.type方法的典型用法代码示例。如果您正苦于以下问题:Python QgsLayoutItemPolygon.type方法的具体用法?Python QgsLayoutItemPolygon.type怎么用?Python QgsLayoutItemPolygon.type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.core.QgsLayoutItemPolygon的用法示例。


在下文中一共展示了QgsLayoutItemPolygon.type方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TestQgsLayoutPolygon

# 需要导入模块: from qgis.core import QgsLayoutItemPolygon [as 别名]
# 或者: from qgis.core.QgsLayoutItemPolygon import type [as 别名]
class TestQgsLayoutPolygon(unittest.TestCase, LayoutItemTestCase):

    @classmethod
    def setUpClass(cls):
        cls.item_class = QgsLayoutItemPolygon

    def __init__(self, methodName):
        """Run once on class initialization."""
        unittest.TestCase.__init__(self, methodName)

        # create composition
        self.layout = QgsLayout(QgsProject.instance())
        self.layout.initializeDefaults()

        # create
        polygon = QPolygonF()
        polygon.append(QPointF(0.0, 0.0))
        polygon.append(QPointF(100.0, 0.0))
        polygon.append(QPointF(200.0, 100.0))
        polygon.append(QPointF(100.0, 200.0))

        self.polygon = QgsLayoutItemPolygon(polygon, self.layout)
        self.layout.addLayoutItem(self.polygon)

        # style
        props = {}
        props["color"] = "green"
        props["style"] = "solid"
        props["style_border"] = "solid"
        props["color_border"] = "black"
        props["width_border"] = "10.0"
        props["joinstyle"] = "miter"

        style = QgsFillSymbol.createSimple(props)
        self.polygon.setSymbol(style)

    def testNodes(self):
        polygon = QPolygonF()
        polygon.append(QPointF(0.0, 0.0))
        polygon.append(QPointF(100.0, 0.0))
        polygon.append(QPointF(200.0, 100.0))
        polygon.append(QPointF(100.0, 200.0))

        p = QgsLayoutItemPolygon(polygon, self.layout)
        self.assertEqual(p.nodes(), polygon)

        polygon = QPolygonF()
        polygon.append(QPointF(0.0, 0.0))
        polygon.append(QPointF(1000.0, 0.0))
        polygon.append(QPointF(2000.0, 100.0))
        polygon.append(QPointF(1000.0, 200.0))

        p.setNodes(polygon)
        self.assertEqual(p.nodes(), polygon)

    def testDisplayName(self):
        """Test if displayName is valid"""

        self.assertEqual(self.polygon.displayName(), "<Polygon>")

    def testType(self):
        """Test if type is valid"""

        self.assertEqual(
            self.polygon.type(), QgsLayoutItemRegistry.LayoutPolygon)

    def testDefaultStyle(self):
        """Test polygon rendering with default style."""

        self.polygon.setDisplayNodes(False)
        checker = QgsLayoutChecker(
            'composerpolygon_defaultstyle', self.layout)
        checker.setControlPathPrefix("composer_polygon")
        myTestResult, myMessage = checker.testLayout()
        assert myTestResult, myMessage

    def testDisplayNodes(self):
        """Test displayNodes method"""

        self.polygon.setDisplayNodes(True)
        checker = QgsLayoutChecker(
            'composerpolygon_displaynodes', self.layout)
        checker.setControlPathPrefix("composer_polygon")
        myTestResult, myMessage = checker.testLayout()
        assert myTestResult, myMessage

        self.polygon.setDisplayNodes(False)
        checker = QgsLayoutChecker(
            'composerpolygon_defaultstyle', self.layout)
        checker.setControlPathPrefix("composer_polygon")
        myTestResult, myMessage = checker.testLayout()
        assert myTestResult, myMessage

    def testSelectedNode(self):
        """Test selectedNode and deselectNode methods"""

        self.polygon.setDisplayNodes(True)

        self.polygon.setSelectedNode(3)
        checker = QgsLayoutChecker(
#.........这里部分代码省略.........
开发者ID:pblottiere,项目名称:QGIS,代码行数:103,代码来源:test_qgslayoutpolygon.py


注:本文中的qgis.core.QgsLayoutItemPolygon.type方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。