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


Python QgsVectorLayer.setSubsetString方法代码示例

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


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

示例1: testSelectSubsetString

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSelectSubsetString(self):

        tmpfile = os.path.join(self.basetestpath, 'testSelectSubsetString.gpkg')
        ds = ogr.GetDriverByName('GPKG').CreateDataSource(tmpfile)
        lyr = ds.CreateLayer('test', geom_type=ogr.wkbMultiPolygon)
        lyr.CreateField(ogr.FieldDefn('foo', ogr.OFTString))
        f = ogr.Feature(lyr.GetLayerDefn())
        f['foo'] = 'bar'
        lyr.CreateFeature(f)
        f = None
        f = ogr.Feature(lyr.GetLayerDefn())
        f['foo'] = 'baz'
        lyr.CreateFeature(f)
        f = None
        ds = None

        vl = QgsVectorLayer('{}|layerid=0'.format(tmpfile), 'test', 'ogr')
        vl.setSubsetString("SELECT fid, foo FROM test WHERE foo = 'baz'")
        got = [feat for feat in vl.getFeatures()]
        self.assertEqual(len(got), 1)
        del vl

        testdata_path = unitTestDataPath('provider')
        shutil.copy(os.path.join(testdata_path, 'bug_19826.gpkg'), tmpfile)
        vl = QgsVectorLayer('{}|layerid=0'.format(tmpfile, 'test', 'ogr'))
        vl.setSubsetString("name = 'two'")
        got = [feat for feat in vl.getFeatures()]
        self.assertEqual(len(got), 1)

        attributes = got[0].attributes()
        self.assertEqual(got[0].id(), 2)
        self.assertEqual(attributes[0], 2)
        self.assertEqual(attributes[1], 'two')
        self.assertNotEqual(attributes[2], None)

        # Request by FeatureId on a subset layer
        got = [feat for feat in vl.getFeatures(QgsFeatureRequest(2))]
        self.assertEqual(len(got), 1)
        attributes = got[0].attributes()
        self.assertEqual(got[0].id(), 2)
        self.assertEqual(attributes[0], 2)
        self.assertEqual(attributes[1], 'two')
        self.assertNotEqual(attributes[2], None)

        request = QgsFeatureRequest(2).setSubsetOfAttributes([0])
        got = [feat for feat in vl.getFeatures(request)]
        self.assertEqual(len(got), 1)
        attributes = got[0].attributes()
        self.assertEqual(got[0].id(), 2)
        self.assertEqual(attributes[0], 2)
        self.assertEqual(attributes[1], None)
        self.assertEqual(attributes[2], None)

        # Request by FeatureId on a subset layer. The name = 'two' filter
        # only returns FID 2, so requesting on FID 1 should return nothing
        # but this is broken now.
        got = [feat for feat in vl.getFeatures(QgsFeatureRequest(1))]
        self.assertEqual(len(got), 1) # this is the current behavior, broken
开发者ID:phborba,项目名称:QGIS,代码行数:60,代码来源:test_provider_ogr_gpkg.py

示例2: testSubsetStringRegexp

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSubsetStringRegexp(self):
        """Check that the provider supports the REGEXP syntax"""

        testPath = "dbname=%s table='test_filter' (geometry) key='id'" % self.dbname
        vl = QgsVectorLayer(testPath, 'test', 'spatialite')
        self.assertTrue(vl.isValid())
        vl.setSubsetString('"name" REGEXP \'[txe]\'')
        self.assertEqual(vl.featureCount(), 4)
        del(vl)
开发者ID:alexbruy,项目名称:QGIS,代码行数:11,代码来源:test_provider_spatialite.py

示例3: test_sql2

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def test_sql2(self):
        l2 = QgsVectorLayer(os.path.join(self.testDataDir, "france_parts.shp"), "france_parts", "ogr", False)
        self.assertEqual(l2.isValid(), True)
        QgsProject.instance().addMapLayer(l2)

        query = toPercent("SELECT * FROM france_parts")
        l4 = QgsVectorLayer("?query=%s&uid=ObjectId" % query, "tt", "virtual")
        self.assertEqual(l4.isValid(), True)

        self.assertEqual(l4.dataProvider().wkbType(), 3)
        self.assertEqual(l4.dataProvider().crs().postgisSrid(), 4326)

        n = 0
        r = QgsFeatureRequest(QgsRectangle(-1.677, 49.624, -0.816, 49.086))
        for f in l4.getFeatures(r):
            self.assertEqual(f.geometry() is not None, True)
            self.assertEqual(f.attributes()[0], 2661)
            n += 1
        self.assertEqual(n, 1)

        # use uid
        query = toPercent("SELECT * FROM france_parts")
        l5 = QgsVectorLayer("?query=%s&geometry=geometry:polygon:4326&uid=ObjectId" % query, "tt", "virtual")
        self.assertEqual(l5.isValid(), True)

        idSum = sum(f.id() for f in l5.getFeatures())
        self.assertEqual(idSum, 10659)

        r = QgsFeatureRequest(2661)
        idSum2 = sum(f.id() for f in l5.getFeatures(r))
        self.assertEqual(idSum2, 2661)

        r = QgsFeatureRequest()
        r.setFilterFids([2661, 2664])
        self.assertEqual(sum(f.id() for f in l5.getFeatures(r)), 2661 + 2664)

        # test attribute subset
        r = QgsFeatureRequest()
        r.setFlags(QgsFeatureRequest.SubsetOfAttributes)
        r.setSubsetOfAttributes([1])
        s = [(f.id(), f.attributes()[1]) for f in l5.getFeatures(r)]
        self.assertEqual(sum([x[0] for x in s]), 10659)
        self.assertEqual(sum([x[1] for x in s]), 3064.0)

        # test NoGeometry
        # by request flag
        r = QgsFeatureRequest()
        r.setFlags(QgsFeatureRequest.NoGeometry)
        self.assertEqual(all([not f.hasGeometry() for f in l5.getFeatures(r)]), True)

        # test subset
        self.assertEqual(l5.dataProvider().featureCount(), 4)
        l5.setSubsetString("ObjectId = 2661")
        idSum2 = sum(f.id() for f in l5.getFeatures(r))
        self.assertEqual(idSum2, 2661)
        self.assertEqual(l5.dataProvider().featureCount(), 1)
开发者ID:medspx,项目名称:QGIS,代码行数:58,代码来源:test_provider_virtual.py

示例4: filter_selection

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
 def filter_selection(self):
     '''
     filter the active layer by selected objects
     '''
     if not self.login:
         return
     # either name of layer or group have to match a category
     active_layer = iface.activeLayer()
     categories = self.categories.keys()
     layer_error = (u'Sie müssen im Layerfenster einen '
                    u'Layer auswählen, wahlweise aus den Gruppen '
                    u'Einrichtungen oder Filter.')
     if not active_layer:
         QtGui.QMessageBox.information(self, 'Fehler', layer_error)
         return
     else:
         layer_name = active_layer.name()
         if layer_name in categories:
             category = layer_name
         else:
             project_tree = QgsProject.instance().layerTreeRoot()
             layer_item = project_tree.findLayer(active_layer.id())
             group = layer_item.parent()
             group_name = group.name()
             if group_name in categories:
                 category = group_name
             else:
                 QtGui.QMessageBox.information(self, 'Fehler', layer_error)
                 return
         selected_feats = active_layer.selectedFeatures()
         if not selected_feats:
             msg = (u'Im ausgewählten Layer {} sind keine '
                    u'Einrichtungen selektiert.'.format(layer_name))
             QtGui.QMessageBox.information(self, 'Fehler', msg)
             return
 
         parent_group = get_group('Filter')
         subgroup = get_group(category, parent_group)
         ids = [str(f.attribute('sel_id')) for f in selected_feats]
         name, ok = QtGui.QInputDialog.getText(
             self, 'Filter', 'Name des zu erstellenden Layers',
             text=get_unique_layer_name(category, subgroup))
         if not ok:
             return
         
         subset = 'sel_id in ({})'.format(','.join(ids))
         layer = QgsVectorLayer(active_layer.source(), name, "postgres")
         remove_layer(name, subgroup)
         
         QgsMapLayerRegistry.instance().addMapLayer(layer, False)
         subgroup.addLayer(layer)
         layer.setSubsetString(subset)
         symbology = SimpleSymbology(self.colors[category], shape='triangle')
         symbology.apply(layer)
         self.copy_editor_attrs(active_layer, layer)
开发者ID:ChrFr,项目名称:qgis_plugins,代码行数:57,代码来源:shk_plugin_dialog.py

示例5: toSqlLayer

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
 def toSqlLayer(self, sql, geomCol, uniqueCol, layerName="QueryLayer", layerType=None, avoidSelectById=False, _filter=""):
     q = QUrl.toPercentEncoding(sql)
     s = "?query=%s" % q
     if uniqueCol is not None:
         s += "&uid=" + uniqueCol
     if geomCol is not None:
         s += "&geometry=" + geomCol
     vl = QgsVectorLayer(s, layerName, "virtual")
     if _filter:
         vl.setSubsetString(_filter)
     return vl
开发者ID:HeatherHillers,项目名称:QGIS,代码行数:13,代码来源:plugin.py

示例6: toSqlLayer

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
 def toSqlLayer(self, sql, geomCol, uniqueCol, layerName="QueryLayer", layerType=None, avoidSelectById=False, _filter=""):
     df = QgsVirtualLayerDefinition()
     df.setQuery(sql)
     if uniqueCol is not None:
         uniqueCol = uniqueCol.strip('"').replace('""', '"')
         df.setUid(uniqueCol)
     if geomCol is not None:
         df.setGeometryField(geomCol)
     vl = QgsVectorLayer(df.toString(), layerName, "virtual")
     if _filter:
         vl.setSubsetString(_filter)
     return vl
开发者ID:CS-SI,项目名称:QGIS,代码行数:14,代码来源:plugin.py

示例7: _createTSlayer

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
	def _createTSlayer(self, uri, providerType, subset=None):
		# utility function used to create the vector layer containing time
		# series data
		layer = QgsVectorLayer( uri, "time_series_layer", providerType )
		if not layer.isValid():
			QMessageBox.warning( self.iface.mainWindow(),
					"PS Time Series Viewer",
					"The layer '%s' wasn't found." % self.ts_tablename )
			self.ts_tablename = None
			return

		if subset is not None:
			layer.setSubsetString( subset )

		return layer
开发者ID:faunalia,项目名称:ps-speed,代码行数:17,代码来源:pstimeseries_plugin.py

示例8: _loadSpaitaliteTable

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def _loadSpaitaliteTable(self, databaseName, tableName, displayName=None, subsetString=None):
        try:
            if not displayName:
                displayName = tableName

            uri = QgsDataSourceURI()
            uri.setDatabase(databaseName)
            uri.setDataSource('', tableName, 'geometry')
            layer = QgsVectorLayer(uri.uri(), displayName, 'spatialite')
            if subsetString:
                layer.setSubsetString(subsetString)

            return layer
        except Exception, e:
            QMessageBox.warning(None, "Error Loading Spatialtie Table", u"{0}".format(e))
            return None
开发者ID:APIS-Luftbildarchiv,项目名称:APIS,代码行数:18,代码来源:apis_layer_manager.py

示例9: testSubsetStringExtent_bug17863

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSubsetStringExtent_bug17863(self):
        """Check that the extent is correct when applied in the ctor and when
        modified after a subset string is set """

        def _lessdigits(s):
            return re.sub(r'(\d+\.\d{3})\d+', r'\1', s)

        testPath = "dbname=%s table='test_filter' (geometry) key='id'" % self.dbname

        subSetString = '"name" = \'int\''
        subSet = ' sql=%s' % subSetString

        # unfiltered
        vl = QgsVectorLayer(testPath, 'test', 'spatialite')
        self.assertTrue(vl.isValid())
        self.assertEqual(vl.featureCount(), 8)
        unfiltered_extent = _lessdigits(vl.extent().toString())
        self.assertNotEqual('Empty', unfiltered_extent)
        del(vl)

        # filter after construction ...
        subSet_vl2 = QgsVectorLayer(testPath, 'test', 'spatialite')
        self.assertEqual(_lessdigits(subSet_vl2.extent().toString()), unfiltered_extent)
        self.assertEqual(subSet_vl2.featureCount(), 8)
        # ... apply filter now!
        subSet_vl2.setSubsetString(subSetString)
        self.assertEqual(subSet_vl2.featureCount(), 4)
        self.assertEqual(subSet_vl2.subsetString(), subSetString)
        self.assertNotEqual(_lessdigits(subSet_vl2.extent().toString()), unfiltered_extent)
        filtered_extent = _lessdigits(subSet_vl2.extent().toString())
        del(subSet_vl2)

        # filtered in constructor
        subSet_vl = QgsVectorLayer(testPath + subSet, 'subset_test', 'spatialite')
        self.assertEqual(subSet_vl.subsetString(), subSetString)
        self.assertTrue(subSet_vl.isValid())

        # This was failing in bug 17863
        self.assertEqual(subSet_vl.featureCount(), 4)
        self.assertEqual(_lessdigits(subSet_vl.extent().toString()), filtered_extent)
        self.assertNotEqual(_lessdigits(subSet_vl.extent().toString()), unfiltered_extent)

        self.assertTrue(subSet_vl.setSubsetString(''))
        self.assertEqual(subSet_vl.featureCount(), 8)
        self.assertEqual(_lessdigits(subSet_vl.extent().toString()), unfiltered_extent)
开发者ID:AlisterH,项目名称:Quantum-GIS,代码行数:47,代码来源:test_provider_spatialite.py

示例10: testSelectSubsetString

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSelectSubsetString(self):

        tmpfile = os.path.join(self.basetestpath, 'testSelectSubsetString.gpkg')
        ds = ogr.GetDriverByName('GPKG').CreateDataSource(tmpfile)
        lyr = ds.CreateLayer('test', geom_type=ogr.wkbMultiPolygon)
        lyr.CreateField(ogr.FieldDefn('foo', ogr.OFTString))
        f = ogr.Feature(lyr.GetLayerDefn())
        f['foo'] = 'bar'
        lyr.CreateFeature(f)
        f = None
        f = ogr.Feature(lyr.GetLayerDefn())
        f['foo'] = 'baz'
        lyr.CreateFeature(f)
        f = None
        ds = None

        vl = QgsVectorLayer('{}|layerid=0'.format(tmpfile), 'test', 'ogr')
        vl.setSubsetString("SELECT fid, foo FROM test WHERE foo = 'baz'")
        got = [feat for feat in vl.getFeatures()]
        self.assertEqual(len(got), 1)
开发者ID:ufolr,项目名称:QGIS,代码行数:22,代码来源:test_provider_ogr_gpkg.py

示例11: testSubSetStringEditable_bug17795_but_with_modified_behavior

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSubSetStringEditable_bug17795_but_with_modified_behavior(self):
        """Test that a layer is editable after setting a subset"""

        tmpfile = os.path.join(self.basetestpath, 'testSubSetStringEditable_bug17795.gpkg')
        shutil.copy(TEST_DATA_DIR + '/' + 'provider/bug_17795.gpkg', tmpfile)

        isEditable = QgsVectorDataProvider.ChangeAttributeValues
        testPath = tmpfile + '|layername=bug_17795'

        vl = QgsVectorLayer(testPath, 'subset_test', 'ogr')
        self.assertTrue(vl.isValid())
        self.assertTrue(vl.dataProvider().capabilities() & isEditable)

        vl = QgsVectorLayer(testPath, 'subset_test', 'ogr')
        vl.setSubsetString('')
        self.assertTrue(vl.isValid())
        self.assertTrue(vl.dataProvider().capabilities() & isEditable)

        vl = QgsVectorLayer(testPath, 'subset_test', 'ogr')
        vl.setSubsetString('"category" = \'one\'')
        self.assertTrue(vl.isValid())
        self.assertTrue(vl.dataProvider().capabilities() & isEditable)

        vl.setSubsetString('')
        self.assertTrue(vl.dataProvider().capabilities() & isEditable)
开发者ID:phborba,项目名称:QGIS,代码行数:27,代码来源:test_provider_ogr_gpkg.py

示例12: __add_layers

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
 def __add_layers(self, thema):
     try:
         layers = []
         for quelle in thema.quellen:
             pfad = quelle.pfad.replace('{gem_name}', self.gem_name)
             qml = None
             if not quelle.qml is None:
                 qml = quelle.qml.replace('{gem_name}', self.gem_name)
             if VRP_DEBUG is True: QgsMessageLog.logMessage('adding lyr:\n{0}\n{1}'.format(pfad, qml), DLG_CAPTION)
             if pfad.lower().endswith('.shp') is True:
                 lyr = QgsVectorLayer(pfad, quelle.name, 'ogr')
                 if not quelle.filter is None:
                     if VRP_DEBUG is True: QgsMessageLog.logMessage('{0}'.format(quelle.filter), DLG_CAPTION)
                     #exp = QgsExpression(quelle.filter)
                     #if exp.hasParserError():
                     #    QgsMessageLog.logMessage( u'Filter ungültig!\nQuelle:[{0}]\nFilter:{1}'.format(quelle.name, quelle.filter), DLG_CAPTION)
                     #else:
                     #    exp.prepare(lyr.pendingFields())
                     lyr.setSubsetString(quelle.filter)
             else:
                 fileinfo = QFileInfo(pfad)
                 basename = fileinfo.baseName()
                 lyr = QgsRasterLayer(pfad, basename)
                 if not lyr.isValid():
                     QgsMessageLog.logMessage( u'Raster [{0}] konnte nicht geladen werden:\n{1}'.format(thema.name, pfad), DLG_CAPTION)
                     continue
             if not qml is None:
                 lyr.loadNamedStyle(qml)
             QgsMapLayerRegistry.instance().addMapLayer(lyr)
             #turn off layer, if no qml present
             #for layer that should not be displayed but should be
             #used for statistics
             if qml is None:
                 self.legiface.setLayerVisible(lyr, False)
             layers.append(lyr)
         return layers
     except:
         msg = 'export pdf (__add_layers): {0}'.format(sys.exc_info()[0])
         QgsMessageLog.logMessage(msg, DLG_CAPTION)
         return None
开发者ID:BergWerkGIS,项目名称:VoGIS-Raumplanung,代码行数:42,代码来源:vrpprintcomposer.py

示例13: testSubsetStringExtent_bug17863

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testSubsetStringExtent_bug17863(self):
        """Check that the extent is correct when applied in the ctor and when
        modified after a subset string is set """

        def _lessdigits(s):
            return re.sub(r'(\d+\.\d{3})\d+', r'\1', s)

        tmpfile = os.path.join(self.basetestpath, 'testSubsetStringExtent_bug17863.gpkg')
        shutil.copy(TEST_DATA_DIR + '/' + 'provider/bug_17795.gpkg', tmpfile)

        testPath = tmpfile + '|layername=bug_17795'
        subSetString = '"name" = \'int\''
        subSet = '|layername=bug_17795|subset=%s' % subSetString

        # unfiltered
        vl = QgsVectorLayer(testPath, 'test', 'ogr')
        self.assertTrue(vl.isValid())
        unfiltered_extent = _lessdigits(vl.extent().toString())
        del(vl)

        # filter after construction ...
        subSet_vl2 = QgsVectorLayer(testPath, 'test', 'ogr')
        self.assertEqual(_lessdigits(subSet_vl2.extent().toString()), unfiltered_extent)
        # ... apply filter now!
        subSet_vl2.setSubsetString(subSetString)
        self.assertEqual(subSet_vl2.subsetString(), subSetString)
        self.assertNotEqual(_lessdigits(subSet_vl2.extent().toString()), unfiltered_extent)
        filtered_extent = _lessdigits(subSet_vl2.extent().toString())
        del(subSet_vl2)

        # filtered in constructor
        subSet_vl = QgsVectorLayer(testPath + subSet, 'subset_test', 'ogr')
        self.assertEqual(subSet_vl.subsetString(), subSetString)
        self.assertTrue(subSet_vl.isValid())

        # This was failing in bug 17863
        self.assertEqual(_lessdigits(subSet_vl.extent().toString()), filtered_extent)
        self.assertNotEqual(_lessdigits(subSet_vl.extent().toString()), unfiltered_extent)
开发者ID:phborba,项目名称:QGIS,代码行数:40,代码来源:test_provider_ogr_gpkg.py

示例14: apply_filters

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def apply_filters(self):
        '''
        filter a layer with settings made by user in filter-tree
        '''
        if not self.login:
            return
        category = self.get_selected_tab()
        scenario_group = get_group(self.active_scenario.name)
        err_group = get_group('Einrichtungen', scenario_group)
        filter_group = get_group('Filter', scenario_group)
        subgroup = get_group(category, filter_group, hide_in_composer=False)
        name, ok = QtGui.QInputDialog.getText(
            self, 'Filter', 'Name des zu erstellenden Layers',
            text=get_unique_layer_name(category, subgroup))
        if not ok or not name:
            return
        orig_layer = None
        for child in err_group.children():
            if child.name() == category:
                layer_id = child.layerId()
                orig_layer = QgsMapLayerRegistry.instance().mapLayers()[layer_id]
                break
        
        filter_tree = self.categories[category]
        subset = filter_tree.to_sql_query(self.active_scenario.id,
                                          year=filter_tree.year_slider.value())
        matches = QgsMapLayerRegistry.instance().mapLayersByName(category)
    
        remove_layer(name, subgroup)

        layer = QgsVectorLayer(orig_layer.source(), name, "postgres")
        QgsMapLayerRegistry.instance().addMapLayer(layer, False)
        subgroup.addLayer(layer)
        layer.setSubsetString(subset)
        symbology = SimpleSymbology(self.colors[category], shape='triangle')
        symbology.apply(layer)
        self.copy_editor_attrs(orig_layer, layer)
开发者ID:ChrFr,项目名称:qgis_plugins,代码行数:39,代码来源:shk_plugin_dialog.py

示例15: testLayerChangeDirtiesProject

# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import setSubsetString [as 别名]
    def testLayerChangeDirtiesProject(self):
        """
        Test that making changes to certain layer properties results in dirty projects
        """
        p = QgsProject()
        l = QgsVectorLayer(os.path.join(TEST_DATA_DIR, "points.shp"), "points", "ogr")
        self.assertTrue(l.isValid())
        self.assertTrue(p.addMapLayers([l]))
        p.setDirty(False)

        l.setCrs(QgsCoordinateReferenceSystem('EPSG:3111'))
        self.assertTrue(p.isDirty())
        p.setDirty(False)

        l.setName('test')
        self.assertTrue(p.isDirty())
        p.setDirty(False)

        self.assertTrue(l.setSubsetString('class=\'a\''))
        self.assertTrue(p.isDirty())
开发者ID:boundlessgeo,项目名称:QGIS,代码行数:22,代码来源:test_qgsproject.py


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