Ejemplo n.º 1
0
    def test_localizedCategories(self):

        # Default locale for tests is EN
        original_locale = QLocale()
        locale = QLocale(QLocale.English)
        locale.setNumberOptions(QLocale.DefaultNumberOptions)
        QLocale().setDefault(locale)

        layer = QgsVectorLayer(
            "Point?field=flddbl:double&field=fldint:integer", "addfeat",
            "memory")
        result = QgsCategorizedSymbolRenderer.createCategories(
            [1234.5, 2345.6, 3456.7], QgsMarkerSymbol(), layer, 'flddouble')

        self.assertEqual(result[0].label(), '1,234.5')
        self.assertEqual(result[1].label(), '2,345.6')
        self.assertEqual(result[2].label(), '3,456.7')

        # Test a non-dot locale
        QLocale().setDefault(QLocale(QLocale.Italian))

        result = QgsCategorizedSymbolRenderer.createCategories(
            [[1234.5, 6789.1], 2345.6, 3456.7], QgsMarkerSymbol(), layer,
            'flddouble')

        self.assertEqual(result[0].label(), '1.234,5;6.789,1')
        self.assertEqual(result[1].label(), '2.345,6')
        self.assertEqual(result[2].label(), '3.456,7')

        # Test round trip
        temp_dir = QTemporaryDir()
        temp_file = os.path.join(temp_dir.path(), 'project.qgs')

        project = QgsProject()
        layer.setRenderer(QgsCategorizedSymbolRenderer('Class', result))
        project.addMapLayers([layer])
        project.write(temp_file)

        QLocale().setDefault(original_locale)

        project = QgsProject()
        project.read(temp_file)
        results = project.mapLayersByName('addfeat')[0].renderer().categories()

        self.assertEqual(result[0].label(), '1.234,5;6.789,1')
        self.assertEqual(result[1].label(), '2.345,6')
        self.assertEqual(result[2].label(), '3.456,7')
        self.assertEqual(result[0].value(), [1234.5, 6789.1])
        self.assertEqual(result[1].value(), 2345.6)
        self.assertEqual(result[2].value(), 3456.7)
    def testCategories(self):
        layer = QgsVectorLayer("Point?field=fldtxt:string&field=fldint:integer", "addfeat", "memory")
        layer.setEditorWidgetSetup(1, QgsEditorWidgetSetup("ValueMap", {'map': [{'One': '1'}, {'Two': '2'}]}))

        result = QgsCategorizedSymbolRenderer.createCategories([1, 2, 3], QgsMarkerSymbol(), layer, 'fldint')

        self.assertEqual(result[0].label(), 'One')
        self.assertEqual(result[1].label(), 'Two')
        self.assertEqual(result[2].label(), '(3)')
    def testCategories(self):
        layer = QgsVectorLayer("Point?field=fldtxt:string&field=fldint:integer", "addfeat", "memory")
        layer.setEditorWidgetSetup(1, QgsEditorWidgetSetup("ValueMap", {'map': [{'One': '1'}, {'Two': '2'}]}))

        result = QgsCategorizedSymbolRenderer.createCategories([1, 2, 3], QgsMarkerSymbol(), layer, 'fldint')

        self.assertEqual(result[0].label(), 'One')
        self.assertEqual(result[1].label(), 'Two')
        self.assertEqual(result[2].label(), '(3)')