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


Python QgsGui.editorWidgetRegistry方法代码示例

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


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

示例1: testSetActive

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def testSetActive(self):
        """ Test setting the search as active - should set active flags to match search widget wrapper's defaults """

        layer = QgsVectorLayer("Point?field=fldtext:string&field=fldint:integer", "test", "memory")
        parent = QWidget()
        w = QgsDefaultSearchWidgetWrapper(layer, 0, parent)
        setup = QgsGui.editorWidgetRegistry().findBest(layer, "fldint")
        wrapper = QgsGui.editorWidgetRegistry().create(layer, 0, None, parent)
        af = QgsAttributeFormEditorWidget(wrapper, setup.type(), None)
        af.setSearchWidgetWrapper(w)

        sb = af.findChild(QWidget, "SearchWidgetToolButton")
        # start with inactive
        sb.setActiveFlags(QgsSearchWidgetWrapper.FilterFlags())
        # set to inactive
        sb.setActive()
        # check that correct default flag was taken from search widget wrapper
        self.assertTrue(sb.activeFlags() & QgsSearchWidgetWrapper.Contains)

        # try again with numeric field - default should be "EqualTo"
        w = QgsDefaultSearchWidgetWrapper(layer, 1, parent)
        af.setSearchWidgetWrapper(w)
        # start with inactive
        sb.setActiveFlags(QgsSearchWidgetWrapper.FilterFlags())
        # set to inactive
        sb.setActive()
        # check that correct default flag was taken from search widget wrapper
        self.assertTrue(sb.activeFlags() & QgsSearchWidgetWrapper.EqualTo)
开发者ID:jonnyforestGIS,项目名称:QGIS,代码行数:30,代码来源:test_qgsattributeformeditorwidget.py

示例2: setUpClass

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
 def setUpClass(cls):
     """Run before all tests"""
     cls.dbconn = 'dbname=\'qgis_test\''
     if 'QGIS_PGTEST_DB' in os.environ:
         cls.dbconn = os.environ['QGIS_PGTEST_DB']
     # Create test layers
     cls.vl = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' srid=4326 type=POINT table="qgis_test"."someData" (geom) sql=', 'test', 'postgres')
     assert cls.vl.isValid()
     cls.source = cls.vl.dataProvider()
     cls.poly_vl = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' srid=4326 type=POLYGON table="qgis_test"."some_poly_data" (geom) sql=', 'test', 'postgres')
     assert cls.poly_vl.isValid()
     cls.poly_provider = cls.poly_vl.dataProvider()
     QgsGui.editorWidgetRegistry().initEditors()
     cls.con = psycopg2.connect(cls.dbconn)
开发者ID:giohappy,项目名称:QGIS,代码行数:16,代码来源:test_provider_postgres.py

示例3: testStringWithMaxLen

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def testStringWithMaxLen(self):
        """ tests that text edit wrappers correctly handle string fields with a maximum length """
        layer = QgsVectorLayer("none?field=fldint:integer", "layer", "memory")
        self.assertTrue(layer.isValid())
        layer.dataProvider().addAttributes([QgsField('max', QVariant.String, 'string', 10),
                                            QgsField('nomax', QVariant.String, 'string', 0)])
        layer.updateFields()
        QgsProject.instance().addMapLayer(layer)

        reg = QgsGui.editorWidgetRegistry()
        config = {'IsMultiline': 'True'}

        # first test for field without character limit
        editor = QTextEdit()
        editor.setPlainText('this_is_a_long_string')
        w = reg.create('TextEdit', layer, 2, config, editor, None)
        self.assertEqual(w.value(), 'this_is_a_long_string')

        # next test for field with character limit
        editor = QTextEdit()
        editor.setPlainText('this_is_a_long_string')
        w = reg.create('TextEdit', layer, 1, config, editor, None)

        self.assertEqual(w.value(), 'this_is_a_')

        QgsProject.instance().removeAllMapLayers()
开发者ID:lyhkop,项目名称:QGIS,代码行数:28,代码来源:test_qgseditwidgets.py

示例4: testCurrentFilterExpression

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def testCurrentFilterExpression(self):
        """ Test creating an expression using the widget"""

        layer = QgsVectorLayer("Point?field=fldint:integer", "test", "memory")
        parent = QWidget()
        w = QgsDefaultSearchWidgetWrapper(layer, 0, parent)
        setup = QgsGui.editorWidgetRegistry().findBest(layer, "fldint")
        wrapper = QgsGui.editorWidgetRegistry().create(layer, 0, None, parent)
        af = QgsAttributeFormEditorWidget(wrapper, setup.type(), None)
        af.setSearchWidgetWrapper(w)

        # test that filter combines both current value in search widget wrapper and flags from search tool button
        w.lineEdit().setText('5.5')
        sb = af.findChild(QWidget, "SearchWidgetToolButton")
        sb.setActiveFlags(QgsSearchWidgetWrapper.EqualTo)
        self.assertEqual(af.currentFilterExpression(), '"fldint"=5.5')
        sb.setActiveFlags(QgsSearchWidgetWrapper.NotEqualTo)
        self.assertEqual(af.currentFilterExpression(), '"fldint"<>5.5')
开发者ID:jonnyforestGIS,项目名称:QGIS,代码行数:20,代码来源:test_qgsattributeformeditorwidget.py

示例5: __createBinaryWidget

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
 def __createBinaryWidget(self):
     """
     create a binary widget
     """
     reg = QgsGui.editorWidgetRegistry()
     configWdg = reg.createConfigWidget('Binary', self.layer, 1, None)
     config = configWdg.config()
     binary_widget = reg.create('Binary', self.layer, 1, config, None, None)
     return binary_widget
开发者ID:yoichigmf,项目名称:QGIS,代码行数:11,代码来源:test_qgsbinarywidget.py

示例6: setUpClass

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def setUpClass(cls):
        """
        Setup the involved layers and relations for a n:m relation
        :return:
        """
        cls.mapCanvas = QgsMapCanvas()
        QgsGui.editorWidgetRegistry().initEditors(cls.mapCanvas)
        cls.dbconn = 'service=\'qgis_test\''
        if 'QGIS_PGTEST_DB' in os.environ:
            cls.dbconn = os.environ['QGIS_PGTEST_DB']
        # Create test layer
        cls.vl_b = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' table="qgis_test"."books" sql=', 'books', 'postgres')
        cls.vl_a = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' table="qgis_test"."authors" sql=', 'authors', 'postgres')
        cls.vl_link = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' table="qgis_test"."books_authors" sql=', 'books_authors', 'postgres')

        QgsProject.instance().addMapLayer(cls.vl_b)
        QgsProject.instance().addMapLayer(cls.vl_a)
        QgsProject.instance().addMapLayer(cls.vl_link)

        cls.relMgr = QgsProject.instance().relationManager()

        cls.rel_a = QgsRelation()
        cls.rel_a.setReferencingLayer(cls.vl_link.id())
        cls.rel_a.setReferencedLayer(cls.vl_a.id())
        cls.rel_a.addFieldPair('fk_author', 'pk')
        cls.rel_a.setId('rel_a')
        assert(cls.rel_a.isValid())
        cls.relMgr.addRelation(cls.rel_a)

        cls.rel_b = QgsRelation()
        cls.rel_b.setReferencingLayer(cls.vl_link.id())
        cls.rel_b.setReferencedLayer(cls.vl_b.id())
        cls.rel_b.addFieldPair('fk_book', 'pk')
        cls.rel_b.setId('rel_b')
        assert(cls.rel_b.isValid())
        cls.relMgr.addRelation(cls.rel_b)

        # Our mock QgsVectorLayerTools, that allow injecting data where user input is expected
        cls.vltools = VlTools()

        assert(cls.vl_a.isValid())
        assert(cls.vl_b.isValid())
        assert(cls.vl_link.isValid())
开发者ID:elpaso,项目名称:QGIS,代码行数:45,代码来源:test_qgsrelationeditwidget.py

示例7: testEditorWidgetTypes

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def testEditorWidgetTypes(self):
        """Test that editor widget types can be fetched from the qgis_editor_widget_styles table"""

        vl = QgsVectorLayer('%s table="qgis_test"."widget_styles" sql=' % (self.dbconn), "widget_styles", "postgres")
        self.assertTrue(vl.isValid())
        fields = vl.dataProvider().fields()

        setup1 = fields.field("fld1").editorWidgetSetup()
        self.assertFalse(setup1.isNull())
        self.assertEqual(setup1.type(), "FooEdit")
        self.assertEqual(setup1.config(), {"param1": "value1", "param2": "2"})

        best1 = QgsGui.editorWidgetRegistry().findBest(vl, "fld1")
        self.assertEqual(best1.type(), "FooEdit")
        self.assertEqual(best1.config(), setup1.config())

        self.assertTrue(fields.field("fld2").editorWidgetSetup().isNull())

        best2 = QgsGui.editorWidgetRegistry().findBest(vl, "fld2")
        self.assertEqual(best2.type(), "TextEdit")
开发者ID:giohappy,项目名称:QGIS,代码行数:22,代码来源:test_provider_postgres.py

示例8: test_enableDisable

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def test_enableDisable(self):
        reg = QgsGui.editorWidgetRegistry()
        layer = QgsVectorLayer("none?field=number:integer", "layer", "memory")
        wrapper = reg.create('ValueRelation', layer, 0, {}, None, None)

        widget = wrapper.widget()

        self.assertTrue(widget.isEnabled())
        wrapper.setEnabled(False)
        self.assertFalse(widget.isEnabled())
        wrapper.setEnabled(True)
        self.assertTrue(widget.isEnabled())
开发者ID:lyhkop,项目名称:QGIS,代码行数:14,代码来源:test_qgseditwidgets.py

示例9: __createRangeWidget

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def __createRangeWidget(self, allownull=False):
        """
        create a range widget
        """
        reg = QgsGui.editorWidgetRegistry()
        configWdg = reg.createConfigWidget('Range', self.layer, 1, None)
        config = configWdg.config()

        # if null shall be allowed
        if allownull:
            config["AllowNull"] = allownull

        rangewidget = reg.create('Range', self.layer, 1, config, None, None)
        return rangewidget
开发者ID:sbrunner,项目名称:QGIS,代码行数:16,代码来源:test_qgsrangewidgets.py

示例10: test_ValueMap_set_get

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def test_ValueMap_set_get(self):
        layer = QgsVectorLayer("none?field=number:integer", "layer", "memory")
        self.assertTrue(layer.isValid())
        QgsProject.instance().addMapLayer(layer)
        reg = QgsGui.editorWidgetRegistry()
        configWdg = reg.createConfigWidget('ValueMap', layer, 0, None)

        config = {'map': [{'two': '2'}, {'twoandhalf': '2.5'}, {'NULL text': 'NULL'}, {'nothing': self.VALUEMAP_NULL_TEXT}]}

        # Set a configuration containing values and NULL and check if it
        # is returned intact.
        configWdg.setConfig(config)
        self.assertEqual(configWdg.config(), config)

        QgsProject.instance().removeAllMapLayers()
开发者ID:lyhkop,项目名称:QGIS,代码行数:17,代码来源:test_qgseditwidgets.py

示例11: doAttributeTest

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def doAttributeTest(self, idx, expected):
        reg = QgsGui.editorWidgetRegistry()
        configWdg = reg.createConfigWidget('TextEdit', self.layer, idx, None)
        config = configWdg.config()
        editwidget = reg.create('TextEdit', self.layer, idx, config, None, None)

        editwidget.setValue('value')
        self.assertEqual(editwidget.value(), expected[0])

        editwidget.setValue(123)
        self.assertEqual(editwidget.value(), expected[1])

        editwidget.setValue(None)
        self.assertEqual(editwidget.value(), expected[2])

        editwidget.setValue(NULL)
        self.assertEqual(editwidget.value(), expected[3])
开发者ID:lyhkop,项目名称:QGIS,代码行数:19,代码来源:test_qgseditwidgets.py

示例12: test_enableDisableOnTableWidget

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def test_enableDisableOnTableWidget(self):
        reg = QgsGui.editorWidgetRegistry()
        layer = QgsVectorLayer("none?field=number:integer", "layer", "memory")
        wrapper = reg.create('ValueRelation', layer, 0, {'AllowMulti': 'True'}, None, None)

        widget = wrapper.widget()
        item = QTableWidgetItem('first item')
        widget.setItem(0, 0, item)

        # does not change the state the whole widget but the single items instead
        wrapper.setEnabled(False)
        # widget still true, but items false
        self.assertTrue(widget.isEnabled())
        self.assertNotEqual(widget.item(0, 0).flags(), widget.item(0, 0).flags() | Qt.ItemIsEnabled)
        wrapper.setEnabled(True)
        self.assertTrue(widget.isEnabled())
        self.assertEqual(widget.item(0, 0).flags(), widget.item(0, 0).flags() | Qt.ItemIsEnabled)
开发者ID:dmarteau,项目名称:QGIS,代码行数:19,代码来源:test_qgseditwidgets.py

示例13: testBetweenFilter

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
    def testBetweenFilter(self):
        """ Test creating a between type filter """
        layer = QgsVectorLayer("Point?field=fldtext:string&field=fldint:integer", "test", "memory")
        form = QgsAttributeForm(layer)
        wrapper = QgsGui.editorWidgetRegistry().create(layer, 0, None, form)
        af = QgsAttributeFormEditorWidget(wrapper, 'DateTime', None)
        af.createSearchWidgetWrappers()

        d1 = af.findChildren(QDateTimeEdit)[0]
        d2 = af.findChildren(QDateTimeEdit)[1]
        d1.setDateTime(QDateTime(QDate(2013, 5, 6), QTime()))
        d2.setDateTime(QDateTime(QDate(2013, 5, 16), QTime()))

        sb = af.findChild(QWidget, "SearchWidgetToolButton")
        sb.setActiveFlags(QgsSearchWidgetWrapper.Between)
        self.assertEqual(af.currentFilterExpression(), '"fldtext">=\'2013-05-06\' AND "fldtext"<=\'2013-05-16\'')
        sb.setActiveFlags(QgsSearchWidgetWrapper.IsNotBetween)
        self.assertEqual(af.currentFilterExpression(), '"fldtext"<\'2013-05-06\' OR "fldtext">\'2013-05-16\'')
开发者ID:jonnyforestGIS,项目名称:QGIS,代码行数:20,代码来源:test_qgsattributeformeditorwidget.py

示例14: setUpClass

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
 def setUpClass(cls):
     QgsGui.editorWidgetRegistry().initEditors()
开发者ID:sbrunner,项目名称:QGIS,代码行数:4,代码来源:test_qgsrangewidgets.py

示例15: import

# 需要导入模块: from qgis.gui import QgsGui [as 别名]
# 或者: from qgis.gui.QgsGui import editorWidgetRegistry [as 别名]
import qgis  # NOQA

from qgis.gui import (QgsSearchWidgetWrapper,
                      QgsAttributeFormEditorWidget,
                      QgsDefaultSearchWidgetWrapper,
                      QgsAttributeForm,
                      QgsSearchWidgetToolButton,
                      QgsGui
                      )
from qgis.core import (QgsVectorLayer)
from qgis.PyQt.QtWidgets import QWidget, QDateTimeEdit
from qgis.PyQt.QtCore import QDateTime, QDate, QTime
from qgis.testing import start_app, unittest

start_app()
QgsGui.editorWidgetRegistry().initEditors()


class PyQgsAttributeFormEditorWidget(unittest.TestCase):

    def testCurrentFilterExpression(self):
        """ Test creating an expression using the widget"""

        layer = QgsVectorLayer("Point?field=fldint:integer", "test", "memory")
        parent = QWidget()
        w = QgsDefaultSearchWidgetWrapper(layer, 0, parent)
        setup = QgsGui.editorWidgetRegistry().findBest(layer, "fldint")
        wrapper = QgsGui.editorWidgetRegistry().create(layer, 0, None, parent)
        af = QgsAttributeFormEditorWidget(wrapper, setup.type(), None)
        af.setSearchWidgetWrapper(w)
开发者ID:jonnyforestGIS,项目名称:QGIS,代码行数:32,代码来源:test_qgsattributeformeditorwidget.py


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