コード例 #1
0
    def testBetweenFilter(self):
        """ Test creating a between type filter """
        layer = QgsVectorLayer(
            "Point?field=fldtext:string&field=fldint:integer", "test",
            "memory")
        form = QgsAttributeForm(layer)
        af = QgsAttributeFormEditorWidget(None, form)
        af.createSearchWidgetWrappers("DateTime", 0, {})

        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()))

        af.searchWidgetToolButton().setActiveFlags(
            QgsSearchWidgetWrapper.Between)
        self.assertEqual(
            af.currentFilterExpression(),
            '"fldtext">=\'2013-05-06\' AND "fldtext"<=\'2013-05-16\'')
        af.searchWidgetToolButton().setActiveFlags(
            QgsSearchWidgetWrapper.IsNotBetween)
        self.assertEqual(
            af.currentFilterExpression(),
            '"fldtext"<\'2013-05-06\' OR "fldtext">\'2013-05-16\'')
コード例 #2
0
# coding: utf-8
from qgis.gui import QgsAttributeForm
from qgis.utils import iface

layer = iface.activeLayer()
attribute_form = QgsAttributeForm(layer, layer.getFeatures().next())
attribute_form.setMode(QgsAttributeForm.SingleEditMode)  # SingleEditMode, AddFeatureMode, MultiEditMode, SearchMode

attribute_form.show()