本文整理汇总了Python中qgis.gui.QgsExpressionBuilderDialog类的典型用法代码示例。如果您正苦于以下问题:Python QgsExpressionBuilderDialog类的具体用法?Python QgsExpressionBuilderDialog怎么用?Python QgsExpressionBuilderDialog使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsExpressionBuilderDialog类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: opendefaultexpression
def opendefaultexpression(self):
layer = self.form.QGISLayer
dlg = QgsExpressionBuilderDialog(layer, "Create default value expression", self)
text = self.defaultvalueText.text().strip('[%').strip('%]').strip()
dlg.setExpressionText(text)
if dlg.exec_():
self.defaultvalueText.setText('[% {} %]'.format(dlg.expressionText()))
开发者ID:loongfee,项目名称:Roam,代码行数:7,代码来源:layerwidgets.py
示例2: showExpressionsBuilder
def showExpressionsBuilder(self):
context = self.alg.createExpressionContext({}, createContext())
dlg = QgsExpressionBuilderDialog(None, self.leText.text(), self, 'generic',
context)
dlg.setWindowTitle(self.tr('Expression based output'))
if dlg.exec_() == QDialog.Accepted:
expression = QgsExpression(dlg.expressionText())
self.leText.setText(expression.evaluate(context))
开发者ID:timlinux,项目名称:QGIS,代码行数:8,代码来源:DestinationSelectionPanel.py
示例3: define_filter
def define_filter(self):
layer = self.layerCombo.currentText()
if not layer:
return
layer = layer_by_name(layer)
dlg = QgsExpressionBuilderDialog(layer, "List filter", self)
text = self.filterText.toPlainText()
dlg.setExpressionText(text)
if dlg.exec_():
self.filterText.setPlainText(dlg.expressionText())
开发者ID:loongfee,项目名称:Roam,代码行数:10,代码来源:listwidget.py
示例4: opendefaultexpression
def opendefaultexpression(self):
"""
Open the default expression builder for setting default values based on QGIS Expressions.
"""
layer = self.form.QGISLayer
dlg = QgsExpressionBuilderDialog(layer, "Create default value expression", self)
text = self.defaultvalueText.text().strip('[%').strip('%]').strip()
dlg.setExpressionText(text)
if dlg.exec_():
self.defaultvalueText.setText('[% {} %]'.format(dlg.expressionText()))
开发者ID:skeenp,项目名称:Roam,代码行数:10,代码来源:layerwidgets.py
示例5: opendefaultexpression_advanced
def opendefaultexpression_advanced(self):
"""
Open the default expression builder for setting advanced default values based on QGIS Expressions.
"""
layer = self.form.QGISLayer
dlg = QgsExpressionBuilderDialog(layer, "Create default value expression", self)
text = self.defaultValueExpression.text()
dlg.setExpressionText(text)
if dlg.exec_():
self.defaultValueExpression.setText(dlg.expressionText())
开发者ID:skeenp,项目名称:Roam,代码行数:10,代码来源:layerwidgets.py
示例6: __init__
def __init__(
self, layer, form_fields, parent=None,
context=QApplication.translate("ExpressionProperty", "Configuration")
):
QgsExpressionBuilderDialog.__init__(
self, layer, form_fields['expression'], parent, context
)
self.expression = form_fields['expression']
self.output_data_type = form_fields['output_data_type']
self._ref_layer = layer
self.expressionBuilder().loadRecent()
开发者ID:gltn,项目名称:stdm,代码行数:12,代码来源:expression_property.py
示例7: showExpressionsBuilder
def showExpressionsBuilder(self):
context = self.expressionContext()
dlg = QgsExpressionBuilderDialog(None, self.spnValue.text(), self, 'generic', context)
dlg.setWindowTitle(self.tr('Expression based input'))
if dlg.exec_() == QDialog.Accepted:
exp = QgsExpression(dlg.expressionText())
if not exp.hasParserError():
result = exp.evaluate(context)
if not exp.hasEvalError():
try:
self.spnValue.setValue(float(result))
except:
pass
开发者ID:AM7000000,项目名称:QGIS,代码行数:13,代码来源:NumberInputPanel.py
示例8: showExpressionsBuilder
def showExpressionsBuilder(self):
context = self.param.expressionContext()
dlg = QgsExpressionBuilderDialog(None, str(self.spnValue.value()), self, 'generic', context)
dlg.setWindowTitle(self.tr('Expression based input'))
if dlg.exec_() == QDialog.Accepted:
exp = QgsExpression(dlg.expressionText())
if not exp.hasParserError():
try:
val = float(exp.evaluate(context))
self.setValue(val)
except:
return
开发者ID:wongjimsan,项目名称:QGIS,代码行数:13,代码来源:NumberInputPanel.py
示例9: __init__
def __init__(self, layer, parent=None, start_text="",
context=QApplication.translate("ForeignKeyMapperExpressionDialog",
"Reports")):
QgsExpressionBuilderDialog.__init__(self, layer, start_text, parent,
context)
self._ref_layer = layer
btn_box = self.findChild(QDialogButtonBox)
if not btn_box is None:
btn_ok = btn_box.button(QDialogButtonBox.Ok)
if not btn_ok is None:
btn_ok.setText(QApplication.translate("ForeignKeyMapperExpressionDialog",
"Select"))
开发者ID:gltn,项目名称:stdm,代码行数:15,代码来源:foreign_key_mapper.py
示例10: editExpression
def editExpression(self):
expr = ""
if self.widget.currentIndex() >= self.nFields:
expr = self.widget.currentText()
self.exprDlg = QgsExpressionBuilderDialog(self.layer, expr)
self.exprDlg.setWindowTitle(self.windowTitle)
if self.exprDlg.exec_() == QDialog.Accepted:
expression = self.exprDlg.expressionText()
self.addExpression(expression)
开发者ID:3nids,项目名称:qgiscombomanager,代码行数:11,代码来源:expressionfieldcombo.py
示例11: showExpressionsBuilder
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,代码行数:49,代码来源:NumberInputPanel.py
示例12: showExpressionsBuilder
def showExpressionsBuilder(self):
context = self.param.expressionContext()
dlg = QgsExpressionBuilderDialog(None, self.leText.text(), self, 'generic', context)
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:medspx,项目名称:QGIS,代码行数:8,代码来源:StringInputPanel.py
示例13: populateByExpression
def populateByExpression(self, adding=False):
"""
Populates the panel using an expression
"""
context = dataobjects.createContext()
expression_context = context.expressionContext()
# use the first row parameter values as a preview during expression creation
params = self.panel.parametersForRow(0, warnOnInvalid=False)
alg_scope = QgsExpressionContextUtils.processingAlgorithmScope(self.panel.alg, params, context)
# create explicit variables corresponding to every parameter
for k, v in params.items():
alg_scope.setVariable(k, v, True)
expression_context.appendScope(alg_scope)
# mark the parameter variables as highlighted for discoverability
highlighted_vars = expression_context.highlightedVariables()
highlighted_vars.extend(list(params.keys()))
expression_context.setHighlightedVariables(highlighted_vars)
dlg = QgsExpressionBuilderDialog(layer=None, context=context.expressionContext())
if adding:
dlg.setExpectedOutputFormat(self.tr('An array of values corresponding to each new row to add'))
if not dlg.exec_():
return
if adding:
exp = QgsExpression(dlg.expressionText())
res = exp.evaluate(expression_context)
if type(res) is not list:
res = [res]
first_row = self.panel.batchRowCount() if self.panel.batchRowCount() > 1 else 0
for row, value in enumerate(res):
self.setRowValue(row + first_row, value, context)
else:
for row in range(self.panel.batchRowCount()):
params = self.panel.parametersForRow(row, warnOnInvalid=False)
# remove previous algorithm scope -- we need to rebuild this completely, using the
# other parameter values from the current row
expression_context.popScope()
alg_scope = QgsExpressionContextUtils.processingAlgorithmScope(self.panel.alg, params, context)
for k, v in params.items():
alg_scope.setVariable(k, v, True)
expression_context.appendScope(alg_scope)
# rebuild a new expression every time -- we don't want the expression compiler to replace
# variables with precompiled values
exp = QgsExpression(dlg.expressionText())
value = exp.evaluate(expression_context)
self.setRowValue(row, value, context)
开发者ID:qgis,项目名称:QGIS,代码行数:58,代码来源:BatchPanel.py
示例14: ExpressionFieldCombo
class ExpressionFieldCombo(FieldCombo):
def __init__(self, widget, expressionWidget, vectorLayerCombo, initField="", options={}):
FieldCombo.__init__(self, widget, vectorLayerCombo, initField, options)
expressionWidget.clicked.connect(self.editExpression)
self.windowTitle = "Expression based label"
def editExpression(self):
expr = ""
if self.widget.currentIndex() >= self.nFields:
expr = self.widget.currentText()
self.exprDlg = QgsExpressionBuilderDialog(self.layer, expr)
self.exprDlg.setWindowTitle(self.windowTitle)
if self.exprDlg.exec_() == QDialog.Accepted:
expression = self.exprDlg.expressionText()
self.addExpression(expression)
def getExpression(self):
if self.widget.currentIndex() < 0:
return None,None
if self.widget.currentIndex() <= self.nFields-1:
return self.getFieldName(), False
else:
return self.widget.currentText(), True
def setExpression(self, expr):
if self.setField(expr) != -1:
return
self.addExpression(expr)
def addExpression(self, expr):
# Only add the expression if the user has entered some text.
if expr != "":
self.widget.addItem(expr)
self.widget.setCurrentIndex(self.widget.count() - 1)
开发者ID:3nids,项目名称:qgiscombomanager,代码行数:37,代码来源:expressionfieldcombo.py
示例15: showExpressionsBuilder
def showExpressionsBuilder(self):
context = createExpressionContext()
processing_context = createContext()
scope = self.modelParametersDialog.model.createExpressionContextScopeForChildAlgorithm(self.modelParametersDialog.childId, processing_context)
context.appendScope(scope)
highlighted = scope.variableNames()
context.setHighlightedVariables(highlighted)
dlg = QgsExpressionBuilderDialog(None, str(self.leText.text()), self, 'generic', context)
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:borysiasty,项目名称:QGIS,代码行数:16,代码来源:NumberInputPanel.py
示例16: showExpressionsBuilder
def showExpressionsBuilder(self):
dlg = QgsExpressionBuilderDialog(None, self.leText.text(), self, 'generic',
self.output.expressionContext(self.alg))
dlg.setWindowTitle(self.tr('Expression based output'))
if dlg.exec_() == QDialog.Accepted:
self.leText.setText(dlg.expressionText())
开发者ID:wongjimsan,项目名称:QGIS,代码行数:6,代码来源:OutputSelectionPanel.py
示例17: add_expression_newvalue
def add_expression_newvalue(self):
dlg = QgsExpressionBuilderDialog(self.layer, "Set expression for new value", self)
text = self.newValueText.text()
dlg.setExpressionText(text)
if dlg.exec_():
self.newValueText.setText(dlg.expressionText())
开发者ID:skeenp,项目名称:Roam,代码行数:6,代码来源:layerwidgets.py
示例18: buildHighlight
def buildHighlight(self):
dialog = QgsExpressionBuilderDialog(self.collection().layer('lines'))
dialog.setExpressionText(self.collection().highlight)
if (dialog.exec_()):
self.applyHighlight(dialog.expressionText())
开发者ID:lparchaeology,项目名称:ArkPlan,代码行数:5,代码来源:filter_module.py
示例19: buildSelection
def buildSelection(self):
dialog = QgsExpressionBuilderDialog(self.collection().layer('lines'))
dialog.setExpressionText(self.collection().selection)
if (dialog.exec_()):
self.applySelection(dialog.expressionText())
开发者ID:lparchaeology,项目名称:ArkPlan,代码行数:5,代码来源:filter_module.py
示例20: add_expression_condition
def add_expression_condition(self):
dlg = QgsExpressionBuilderDialog(self.layer, "Set condition expression", self)
text = self.condtionText.text()
dlg.setExpressionText(text)
if dlg.exec_():
self.condtionText.setText(dlg.expressionText())
开发者ID:skeenp,项目名称:Roam,代码行数:6,代码来源:layerwidgets.py
注:本文中的qgis.gui.QgsExpressionBuilderDialog类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论