本文整理汇总了Python中qgis.core.QgsVectorLayer.selectedFeatureCount方法的典型用法代码示例。如果您正苦于以下问题:Python QgsVectorLayer.selectedFeatureCount方法的具体用法?Python QgsVectorLayer.selectedFeatureCount怎么用?Python QgsVectorLayer.selectedFeatureCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsVectorLayer
的用法示例。
在下文中一共展示了QgsVectorLayer.selectedFeatureCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testRepack
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import selectedFeatureCount [as 别名]
def testRepack(self):
vl = QgsVectorLayer(u'{}|layerid=0'.format(self.repackfile), u'test', u'ogr')
ids = [f.id() for f in vl.getFeatures(QgsFeatureRequest().setFilterExpression('pk=1'))]
vl.setSelectedFeatures(ids)
assert vl.selectedFeaturesIds() == ids, vl.selectedFeaturesIds()
assert vl.pendingFeatureCount() == 5, vl.pendingFeatureCount()
assert vl.startEditing()
assert vl.deleteFeature(3)
assert vl.commitChanges()
assert vl.selectedFeatureCount() == 0 or vl.selectedFeatures()[0]['pk'] == 1
示例2: testRepack
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import selectedFeatureCount [as 别名]
def testRepack(self):
vl = QgsVectorLayer("{}|layerid=0".format(self.repackfile), "test", "ogr")
ids = [f.id() for f in vl.getFeatures(QgsFeatureRequest().setFilterExpression("pk=1"))]
vl.selectByIds(ids)
self.assertEqual(vl.selectedFeaturesIds(), ids)
self.assertEqual(vl.pendingFeatureCount(), 5)
self.assertTrue(vl.startEditing())
self.assertTrue(vl.deleteFeature(3))
self.assertTrue(vl.commitChanges())
self.assertTrue(vl.selectedFeatureCount() == 0 or vl.selectedFeatures()[0]["pk"] == 1)
示例3: TestSectionPlot
# 需要导入模块: from qgis.core import QgsVectorLayer [as 别名]
# 或者: from qgis.core.QgsVectorLayer import selectedFeatureCount [as 别名]
class TestSectionPlot(utils_for_tests.MidvattenTestPostgisDbSv):
""" The test doesn't go through the whole section plot unfortunately
"""
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('db_utils.get_postgis_connections', utils_for_tests.MidvattenTestPostgisNotCreated.mock_postgis_connections)
def setUp(self):
super(TestSectionPlot, self).setUp()
self.midvatten.ms.settingsdict['secplot_loaded_template'] = ''
self.midvatten.ms.settingsdict['secplot_templates'] = ''
self.midvatten.ms.settingsdict['secplotlocation'] = 0
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('db_utils.get_postgis_connections', utils_for_tests.MidvattenTestPostgisNotCreated.mock_postgis_connections)
def create_and_select_vlayer(self):
self.qgs = QgsApplication([], True)
self.qgs.initQgis()
self.midvatten.ms.settingsdict['secplotdrillstop'] = "%berg%"
dbconnection = db_utils.DbConnectionManager()
uri = dbconnection.uri
uri.setDataSource('', 'obs_lines', 'geometry', '', 'obsid')
dbtype = db_utils.get_dbtype(dbconnection.dbtype)
self.vlayer = QgsVectorLayer(uri.uri(), 'TestLayer', dbtype)
features = self.vlayer.getFeatures()
feature_ids = [feature.id() for feature in features]
self.vlayer.selectByIds(feature_ids)
@mock.patch('midvatten_utils.MessagebarAndLog')
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('db_utils.get_postgis_connections', utils_for_tests.MidvattenTestPostgisNotCreated.mock_postgis_connections)
def test_plot_section(self, mock_messagebar):
"""For now, the test only initiates the plot. Check that it does not crash """
db_utils.sql_alter_db('''INSERT INTO obs_lines (obsid, geometry) VALUES ('L1', ST_GeomFromText('LineString(633466.711659 6720684.24498, 633599.530455 6720727.016568)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P1', ST_GeomFromText('POINT(633466 711659)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P2', ST_GeomFromText('POINT(6720727 016568)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P3', ST_GeomFromText('POINT(6720728 016569)', 3006))''')
self.create_and_select_vlayer()
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('db_utils.get_postgis_connections', utils_for_tests.MidvattenTestPostgisNotCreated.mock_postgis_connections)
@mock.patch('midvatten_utils.getselectedobjectnames', autospec=True)
@mock.patch('qgis.utils.iface', autospec=True)
def _test_plot_section(self, mock_iface, mock_getselectedobjectnames):
mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer
mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3')
mock_mapcanvas = mock_iface.mapCanvas.return_value
mock_mapcanvas.layerCount.return_value = 0
self.midvatten.plot_section()
self.myplot = self.midvatten.myplot
self.myplot.drillstoplineEdit.setText("%berg%")
self.myplot.draw_plot()
self.selected_obsids = self.myplot.selected_obsids
_test_plot_section(self)
assert """call.info(log_msg='Settings {""" in str(mock_messagebar.mock_calls)
assert self.myplot.drillstoplineEdit.text() == '%berg%'
assert utils_for_tests.create_test_string(self.myplot.selected_obsids) == "['P1' 'P2' 'P3']"
assert not mock_messagebar.warning.called
assert not mock_messagebar.critical.called
assert len(self.myplot.p) == len(self.myplot.Labels)
@mock.patch('midvatten_utils.MessagebarAndLog')
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('db_utils.get_postgis_connections', utils_for_tests.MidvattenTestPostgisNotCreated.mock_postgis_connections)
def test_plot_section_with_string_obsid(self, mock_messagebar):
"""For now, the test only initiates the plot. Check that it does not crash with string obsid """
db_utils.sql_alter_db('''INSERT INTO obs_lines (obsid, geometry) VALUES ('L1', ST_GeomFromText('LINESTRING(633466.711659 6720684.24498, 633599.530455 6720727.016568)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P1', ST_GeomFromText('POINT(633466 711659)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P2', ST_GeomFromText('POINT(6720727 016568)', 3006))''')
db_utils.sql_alter_db('''INSERT INTO obs_points (obsid, geometry) VALUES ('P3', ST_GeomFromText('POINT(6720728 016569)', 3006))''')
self.create_and_select_vlayer()
print(str(self.vlayer.selectedFeatureCount()))
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
@mock.patch('midvatten_utils.getselectedobjectnames', autospec=True)
@mock.patch('qgis.utils.iface', autospec=True)
def _test_plot_section(self, mock_iface, mock_getselectedobjectnames):
mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer
mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3')
mock_mapcanvas = mock_iface.mapCanvas.return_value
mock_mapcanvas.layerCount.return_value = 0
self.midvatten.plot_section()
self.midvatten.ms = self.ms
self.myplot = self.midvatten.myplot
self.myplot.drillstoplineEdit.setText("%berg%")
self.myplot.draw_plot()
self.selected_obsids = self.myplot.selected_obsids
_test_plot_section(self)
assert """call.info(log_msg='Settings {""" in str(mock_messagebar.mock_calls)
assert self.myplot.drillstoplineEdit.text() == '%berg%'
assert utils_for_tests.create_test_string(self.myplot.selected_obsids) == "['P1' 'P2' 'P3']"
assert not mock_messagebar.warning.called
assert not mock_messagebar.critical.called
@mock.patch('midvatten_utils.MessagebarAndLog')
@mock.patch('db_utils.QgsProject.instance', utils_for_tests.MidvattenTestPostgisNotCreated.mock_instance_settings_database)
#.........这里部分代码省略.........