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


Python QgsExpressionBuilderDialog.expressionBuilder方法代码示例

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


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

示例1: showExpressionsBuilder

# 需要导入模块: from qgis.gui import QgsExpressionBuilderDialog [as 别名]
# 或者: from qgis.gui.QgsExpressionBuilderDialog import expressionBuilder [as 别名]
    def showExpressionsBuilder(self):
        context = createExpressionContext()
        dlg = QgsExpressionBuilderDialog(None, str(self.leText.text()), self, 'generic', context)

        context.popScope()
        values = self.modelParametersDialog.getAvailableValuesOfType(QgsProcessingParameterNumber, QgsProcessingOutputNumber)
        variables = {}
        for value in values:
            if isinstance(value, QgsProcessingModelAlgorithm.ChildParameterSource):
                if value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.ModelParameter:
                    name = value.parameterName()
                    element = self.modelParametersDialog.model.parameterDefinition(name)
                    desc = element.description()
                elif value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.ChildOutput:
                    name = "%s_%s" % (value.outputChildId(), value.outputName())
                    alg = self.modelParametersDialog.model.childAlgorithm(value.outputChildId())
                    out = alg.algorithm().outputDefinition(value.outputName())
                    desc = self.tr("Output '{0}' from algorithm '{1}'").format(out.description(), alg.description())
            variables[name] = desc
        values = self.modelParametersDialog.getAvailableValuesOfType([QgsProcessingParameterFeatureSource, QgsProcessingParameterRasterLayer],
                                                                     [QgsProcessingOutputVectorLayer, QgsProcessingOutputRasterLayer])
        for value in values:
            if isinstance(value, QgsProcessingModelAlgorithm.ChildParameterSource):
                if value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.ModelParameter:
                    name = value.parameterName()
                    element = self.modelParametersDialog.model.parameterDefinition(name)
                    desc = element.description()
                elif value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.ChildOutput:
                    name = "%s_%s" % (value.outputChildId(), value.outputName())
                    alg = self.modelParametersDialog.model.childAlgorithm(value.outputChildId())
                    out = alg.algorithm().outputDefinition(value.outputName())
                    desc = self.tr("Output '{0}' from algorithm '{1}'").format(out.description(), alg.description())
            variables['%s_minx' % name] = self.tr("Minimum X of {0}").format(desc)
            variables['%s_miny' % name] = self.tr("Minimum Y of {0}").format(desc)
            variables['%s_maxx' % name] = self.tr("Maximum X of {0}").format(desc)
            variables['%s_maxy' % name] = self.tr("Maximum Y of {0}").format(desc)
            if isinstance(element, (QgsProcessingParameterRasterLayer, QgsProcessingOutputRasterLayer)):
                variables['%s_min' % name] = self.tr("Minimum value of {0}").format(desc)
                variables['%s_max' % name] = self.tr("Maximum value of {0}").format(desc)
                variables['%s_avg' % name] = self.tr("Mean value of {0}").format(desc)
                variables['%s_stddev' % name] = self.tr("Standard deviation of {0}").format(desc)
        for variable, desc in variables.items():
            dlg.expressionBuilder().registerItem("Modeler", variable, "@" + variable, desc, highlightedItem=True)

        dlg.setWindowTitle(self.tr('Expression based input'))
        if dlg.exec_() == QDialog.Accepted:
            exp = QgsExpression(dlg.expressionText())
            if not exp.hasParserError():
                self.setValue(dlg.expressionText())
开发者ID:ndavid,项目名称:QGIS,代码行数:51,代码来源:NumberInputPanel.py

示例2: showExpressionsBuilder

# 需要导入模块: from qgis.gui import QgsExpressionBuilderDialog [as 别名]
# 或者: from qgis.gui.QgsExpressionBuilderDialog import expressionBuilder [as 别名]
    def showExpressionsBuilder(self):
        context = self.param.expressionContext()
        dlg = QgsExpressionBuilderDialog(None, str(self.leText.text()), self, 'generic', context)

        context.popScope()
        values = self.modelParametersDialog.getAvailableValuesOfType(ParameterNumber, OutputNumber)
        variables = {}
        for value in values:
            if isinstance(value, ValueFromInput):
                name = value.name
                element = self.modelParametersDialog.model.inputs[name].param
                desc = element.description
            else:
                name = "%s_%s" % (value.alg, value.output)
                alg = self.modelParametersDialog.model.algs[value.alg]
                out = alg.algorithm.getOutputFromName(value.output)
                desc = "Output '%s' from algorithm '%s" % (out.description, alg.description)
            variables[name] = desc
        values = self.modelParametersDialog.getAvailableValuesOfType(ParameterVector, OutputVector)
        values.extend(self.modelParametersDialog.getAvailableValuesOfType(ParameterRaster, OutputRaster))
        for value in values:
            if isinstance(value, ValueFromInput):
                name = value.name
                element = self.modelParametersDialog.model.inputs[name].param
                desc = element.description
            else:
                name = "%s_%s" % (value.alg, value.output)
                alg = self.modelParametersDialog.model.algs[value.alg]
                element = alg.algorithm.getOutputFromName(value.output)
                desc = "Output '%s' from algorithm '%s" % (element.description, alg.description)
            variables['%s_minx' % name] = "Minimum X of %s" % desc
            variables['%s_miny' % name] = "Maximum X of %s" % desc
            variables['%s_maxx' % name] = "Minimum Y of %s" % desc
            variables['%s_maxy' % name] = "Maximum Y of %s" % desc
            if isinstance(element, (ParameterRaster, OutputRaster)):
                variables['%s_min' % name] = "Minimum value of %s" % desc
                variables['%s_max' % name] = "Maximum value of %s" % desc
                variables['%s_avg' % name] = "Mean value of %s" % desc
                variables['%s_stddev' % name] = "Standard deviation of %s" % desc
        for variable, desc in variables.items():
            dlg.expressionBuilder().registerItem("Modeler", variable, "@" + variable, desc, highlightedItem=True)

        dlg.setWindowTitle(self.tr('Expression based input'))
        if dlg.exec_() == QDialog.Accepted:
            exp = QgsExpression(dlg.expressionText())
            if not exp.hasParserError():
                self.setValue(dlg.expressionText())
开发者ID:wongjimsan,项目名称:QGIS,代码行数:49,代码来源:NumberInputPanel.py


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