示例#1
0
    def testQgsLayoutGuideProxyModel(self):
        p = QgsProject()
        l = QgsLayout(p)
        l.initializeDefaults() # add a page
        page2 = QgsLayoutItemPage(l)
        page2.setPageSize('A3')
        l.pageCollection().addPage(page2)
        guides = l.guides()

        hoz_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 0)
        hoz_filter.setSourceModel(guides)
        hoz_page_1_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 1)
        hoz_page_1_filter.setSourceModel(guides)
        vert_filter = QgsLayoutGuideProxyModel(None, Qt.Vertical, 0)
        vert_filter.setSourceModel(guides)

        # no guides initially
        self.assertEqual(hoz_filter.rowCount(QModelIndex()), 0)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 0)
        self.assertEqual(vert_filter.rowCount(QModelIndex()), 0)

        # add some guides
        g1 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(5, QgsUnitTypes.LayoutCentimeters), l.pageCollection().page(0))
        guides.addGuide(g1)
        g2 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(15), l.pageCollection().page(1))
        guides.addGuide(g2)
        g3 = QgsLayoutGuide(Qt.Vertical, QgsLayoutMeasurement(35), l.pageCollection().page(0))
        guides.addGuide(g3)

        self.assertEqual(hoz_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(hoz_filter.data(hoz_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 15)
        self.assertEqual(vert_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(vert_filter.data(vert_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 35)

        # change page
        hoz_page_1_filter.setPage(0)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5)
示例#2
0
    def testQgsLayoutGuideProxyModel(self):
        p = QgsProject()
        l = QgsLayout(p)
        l.initializeDefaults()  # add a page
        page2 = QgsLayoutItemPage(l)
        page2.setPageSize('A3')
        l.pageCollection().addPage(page2)
        guides = l.guides()

        hoz_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 0)
        hoz_filter.setSourceModel(guides)
        hoz_page_1_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 1)
        hoz_page_1_filter.setSourceModel(guides)
        vert_filter = QgsLayoutGuideProxyModel(None, Qt.Vertical, 0)
        vert_filter.setSourceModel(guides)

        # no guides initially
        self.assertEqual(hoz_filter.rowCount(QModelIndex()), 0)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 0)
        self.assertEqual(vert_filter.rowCount(QModelIndex()), 0)

        # add some guides
        g1 = QgsLayoutGuide(
            Qt.Horizontal,
            QgsLayoutMeasurement(5, QgsUnitTypes.LayoutCentimeters),
            l.pageCollection().page(0))
        guides.addGuide(g1)
        g2 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(15),
                            l.pageCollection().page(1))
        guides.addGuide(g2)
        g3 = QgsLayoutGuide(Qt.Vertical, QgsLayoutMeasurement(35),
                            l.pageCollection().page(0))
        guides.addGuide(g3)

        self.assertEqual(hoz_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(
            hoz_filter.data(hoz_filter.index(0, 0),
                            QgsLayoutGuideCollection.PositionRole), 5)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(
            hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0),
                                   QgsLayoutGuideCollection.PositionRole), 15)
        self.assertEqual(vert_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(
            vert_filter.data(vert_filter.index(0, 0),
                             QgsLayoutGuideCollection.PositionRole), 35)

        # change page
        hoz_page_1_filter.setPage(0)
        self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1)
        self.assertEqual(
            hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0),
                                   QgsLayoutGuideCollection.PositionRole), 5)