本文整理汇总了Python中qgis.gui.QgsFieldExpressionWidget类的典型用法代码示例。如果您正苦于以下问题:Python QgsFieldExpressionWidget类的具体用法?Python QgsFieldExpressionWidget怎么用?Python QgsFieldExpressionWidget使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsFieldExpressionWidget类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: createEditor
def createEditor(self, parent, option, index):
editor = QgsFieldExpressionWidget(parent)
editor.setLayer(index.model().layer())
editor.registerExpressionContextGenerator(index.model().contextGenerator())
editor.fieldChanged.connect(self.on_expression_fieldChange)
editor.setAutoFillBackground(True)
editor.setAllowEvalErrors(self.parent().dialogType == DIALOG_MODELER)
return editor
示例2: createEditor
def createEditor(self, parent, option, index):
editor = QgsFieldExpressionWidget(parent)
editor.setLayer(index.model().layer())
editor.registerExpressionContextGenerator(index.model().contextGenerator())
editor.fieldChanged.connect(self.on_expression_fieldChange)
editor.setAutoFillBackground(True)
return editor
示例3: createEditor
def createEditor(self, parent, option, index):
column = index.column()
fieldType = FieldsMappingModel.columns[column]['type']
if fieldType == QtCore.QVariant.Type:
editor = QtGui.QComboBox(parent)
for key, text in FieldsMappingModel.fieldTypes.iteritems():
editor.addItem(text, key)
elif fieldType == QgsExpression:
editor = QgsFieldExpressionWidget(parent)
editor.setLayer(index.model().layer())
# editor.fieldChanged.connect(self.on_expression_fieldChange)
else:
editor = QtGui.QStyledItemDelegate.createEditor(self, parent, option, index)
editor.setAutoFillBackground(True)
return editor
示例4: addExpressionWidget
def addExpressionWidget(self):
hor = QtGui.QHBoxLayout()
fieldExp = QgsFieldExpressionWidget()
combo = QtGui.QComboBox()
hor.addWidget(combo)
self.combos.append(combo)
hor.addWidget(fieldExp)
del_btn = QtGui.QPushButton(self.tr("Delete"))
hor.addWidget(del_btn)
self.dels.append(del_btn)
self.verticalLayout.addLayout(hor)
self.exps.append(fieldExp)
self.hors.append(hor)
if self.slave is not None:
self.updateComboBoxFromLayerAttributes(combo, self.slave.fields())
if self.master is not None:
fieldExp.setLayer(self.master)
del_btn.clicked.connect(self.removeExpressionWidget)
示例5: __init__
def __init__(self, dialog):
super(ExecuteSQLWidget, self).__init__(None)
self.setupUi(self)
self.dialog = dialog
self.dialogType = dialogTypes[dialog.__class__.__name__]
self.mExpressionWidget = QgsFieldExpressionWidget()
# add model parameters in context scope if called from modeler
if self.dialogType == DIALOG_MODELER:
strings = dialog.getAvailableValuesOfType(
[QgsProcessingParameterString, QgsProcessingParameterNumber], [])
model_params = [dialog.resolveValueDescription(s) for s in strings]
scope = QgsExpressionContextScope()
for param in model_params:
var = QgsExpressionContextScope.StaticVariable(param)
scope.addVariable(var)
self.mExpressionWidget.appendScope(scope)
self.mHLayout.insertWidget(0, self.mExpressionWidget)
self.mInsert.clicked.connect(self.insert)
示例6: createWidget
def createWidget(self):
if self.dialogType in (DIALOG_STANDARD, DIALOG_BATCH):
if self.param.parent_layer:
widget = QgsFieldExpressionWidget()
else:
widget = QgsExpressionLineEdit()
if self.param.default:
widget.setExpression(self.param.default)
else:
strings = self.dialog.getAvailableValuesOfType([ParameterExpression, ParameterString, ParameterNumber], OutputString)
options = [(self.dialog.resolveValueDescription(s), s) for s in strings]
widget = QComboBox()
widget.setEditable(True)
for desc, val in options:
widget.addItem(desc, val)
widget.setEditText(self.param.default or "")
return widget
示例7: ExecuteSQLWidget
class ExecuteSQLWidget(BASE, WIDGET):
def __init__(self, dialog):
super(ExecuteSQLWidget, self).__init__(None)
self.setupUi(self)
self.dialog = dialog
self.dialogType = dialogTypes[dialog.__class__.__name__]
self.mExpressionWidget = QgsFieldExpressionWidget()
# add model parameters in context scope if called from modeler
if self.dialogType == DIALOG_MODELER:
strings = dialog.getAvailableValuesOfType(
[QgsProcessingParameterString, QgsProcessingParameterNumber], [])
model_params = [dialog.resolveValueDescription(s) for s in strings]
scope = QgsExpressionContextScope()
for param in model_params:
var = QgsExpressionContextScope.StaticVariable(param)
scope.addVariable(var)
self.mExpressionWidget.appendScope(scope)
self.mHLayout.insertWidget(0, self.mExpressionWidget)
self.mInsert.clicked.connect(self.insert)
def insert(self):
if self.mExpressionWidget.currentText():
exp = '[%{}%]'.format(self.mExpressionWidget.currentText())
self.mText.insertPlainText(exp)
def setValue(self, value):
text = value
if self.dialogType == DIALOG_MODELER:
if isinstance(value, list):
for v in value:
if isinstance(v, QgsProcessingModelChildParameterSource) \
and v.source() == QgsProcessingModelChildParameterSource.ExpressionText:
text = v.expressionText()
# replace parameter's name by expression (diverging after model save)
names = QgsExpression.referencedVariables(text)
strings = self.dialog.getAvailableValuesOfType(
[QgsProcessingParameterString, QgsProcessingParameterNumber], [])
model_params = [(self.dialog.resolveValueDescription(s), s) for s in strings]
for k, v in model_params:
if v.parameterName() in names:
text = text.replace('[% @{} %]'.format(v.parameterName()), '[% @{} %]'.format(k))
self.mText.setPlainText(text)
def value(self):
value = self.mText.toPlainText()
if self.dialogType == DIALOG_MODELER:
expression_values = self._expressionValues(value)
if len(expression_values) > 1:
value = expression_values
return value
def _expressionValues(self, text):
strings = self.dialog.getAvailableValuesOfType(
[QgsProcessingParameterString, QgsProcessingParameterNumber], [])
model_params = [(self.dialog.resolveValueDescription(s), s) for s in strings]
variables = QgsExpression.referencedVariables(text)
# replace description by parameter's name (diverging after model save)
descriptions = QgsExpression.referencedVariables(text)
for k, v in model_params:
if k in descriptions:
text = text.replace('[% @{} %]'.format(k), '[% @{} %]'.format(v.parameterName()))
src = QgsProcessingModelChildParameterSource.fromExpressionText(text)
# add parameters currently used by the expression
expression_values = []
expression_values.append(src)
for k, v in model_params:
if k in variables:
expression_values.append(v)
return expression_values
示例8: setupUi
def setupUi(self, changeDataSourceDialogBase):
changeDataSourceDialogBase.setObjectName(_fromUtf8("changeDataSourceDialogBase"))
changeDataSourceDialogBase.resize(1027, 461)
self.verticalLayout = QtGui.QVBoxLayout(changeDataSourceDialogBase)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.layerTable = QtGui.QTableWidget(changeDataSourceDialogBase)
self.layerTable.setAlternatingRowColors(True)
self.layerTable.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
self.layerTable.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.layerTable.setGridStyle(QtCore.Qt.DotLine)
self.layerTable.setObjectName(_fromUtf8("layerTable"))
self.layerTable.setColumnCount(0)
self.layerTable.setRowCount(0)
self.layerTable.horizontalHeader().setHighlightSections(False)
self.layerTable.horizontalHeader().setSortIndicatorShown(True)
self.layerTable.verticalHeader().setVisible(True)
self.verticalLayout.addWidget(self.layerTable)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.label = QtGui.QLabel(changeDataSourceDialogBase)
self.label.setObjectName(_fromUtf8("label"))
self.horizontalLayout.addWidget(self.label)
self.findEdit = QtGui.QLineEdit(changeDataSourceDialogBase)
self.findEdit.setMaximumSize(QtCore.QSize(100, 16777215))
self.findEdit.setObjectName(_fromUtf8("findEdit"))
self.horizontalLayout.addWidget(self.findEdit)
self.label_2 = QtGui.QLabel(changeDataSourceDialogBase)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.horizontalLayout.addWidget(self.label_2)
self.replaceEdit = QtGui.QLineEdit(changeDataSourceDialogBase)
self.replaceEdit.setMaximumSize(QtCore.QSize(100, 16777215))
self.replaceEdit.setObjectName(_fromUtf8("replaceEdit"))
self.horizontalLayout.addWidget(self.replaceEdit)
self.label_4 = QtGui.QLabel(changeDataSourceDialogBase)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.horizontalLayout.addWidget(self.label_4)
self.mFieldExpressionWidget = QgsFieldExpressionWidget(changeDataSourceDialogBase)
self.mFieldExpressionWidget.setObjectName(_fromUtf8("mFieldExpressionWidget"))
self.horizontalLayout.addWidget(self.mFieldExpressionWidget)
self.label_3 = QtGui.QLabel(changeDataSourceDialogBase)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.horizontalLayout.addWidget(self.label_3)
self.datasourceCombo = QtGui.QComboBox(changeDataSourceDialogBase)
self.datasourceCombo.setObjectName(_fromUtf8("datasourceCombo"))
self.horizontalLayout.addWidget(self.datasourceCombo)
self.onlySelectedCheck = QtGui.QCheckBox(changeDataSourceDialogBase)
self.onlySelectedCheck.setObjectName(_fromUtf8("onlySelectedCheck"))
self.horizontalLayout.addWidget(self.onlySelectedCheck)
self.replaceButton = QtGui.QPushButton(changeDataSourceDialogBase)
self.replaceButton.setObjectName(_fromUtf8("replaceButton"))
self.horizontalLayout.addWidget(self.replaceButton)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem)
self.handleBadLayersCheckbox = QtGui.QCheckBox(changeDataSourceDialogBase)
self.handleBadLayersCheckbox.setObjectName(_fromUtf8("handleBadLayersCheckbox"))
self.horizontalLayout_2.addWidget(self.handleBadLayersCheckbox)
self.reconcileButton = QtGui.QPushButton(changeDataSourceDialogBase)
self.reconcileButton.setObjectName(_fromUtf8("reconcileButton"))
self.horizontalLayout_2.addWidget(self.reconcileButton)
self.buttonBox = QtGui.QDialogButtonBox(changeDataSourceDialogBase)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.buttonBox.sizePolicy().hasHeightForWidth())
self.buttonBox.setSizePolicy(sizePolicy)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Apply|QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Reset)
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.horizontalLayout_2.addWidget(self.buttonBox)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.retranslateUi(changeDataSourceDialogBase)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), changeDataSourceDialogBase.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), changeDataSourceDialogBase.reject)
QtCore.QMetaObject.connectSlotsByName(changeDataSourceDialogBase)
示例9: setupUi
def setupUi(self, ContourDialog):
ContourDialog.setObjectName("ContourDialog")
ContourDialog.setWindowModality(QtCore.Qt.NonModal)
ContourDialog.resize(655, 742)
ContourDialog.setSizeGripEnabled(True)
self.verticalLayout = QtWidgets.QVBoxLayout(ContourDialog)
self.verticalLayout.setObjectName("verticalLayout")
self.scrollArea_2 = QtWidgets.QScrollArea(ContourDialog)
self.scrollArea_2.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.scrollArea_2.setWidgetResizable(True)
self.scrollArea_2.setObjectName("scrollArea_2")
self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 641, 654))
self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.groupBox_2 = QtWidgets.QGroupBox(self.scrollAreaWidgetContents_2)
self.groupBox_2.setObjectName("groupBox_2")
self.gridLayout = QtWidgets.QGridLayout(self.groupBox_2)
self.gridLayout.setObjectName("gridLayout")
self.formLayout_2 = QtWidgets.QFormLayout()
self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_2.setContentsMargins(-1, 0, -1, -1)
self.formLayout_2.setObjectName("formLayout_2")
self.label_3 = QtWidgets.QLabel(self.groupBox_2)
self.label_3.setObjectName("label_3")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_3)
self.uSourceLayer = QgsMapLayerComboBox(self.groupBox_2)
self.uSourceLayer.setObjectName("uSourceLayer")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.uSourceLayer)
self.label_4 = QtWidgets.QLabel(self.groupBox_2)
self.label_4.setObjectName("label_4")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_4)
self.uDataField = QgsFieldExpressionWidget(self.groupBox_2)
self.uDataField.setObjectName("uDataField")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.uDataField)
self.uSelectedOnly = QtWidgets.QCheckBox(self.groupBox_2)
self.uSelectedOnly.setObjectName("uSelectedOnly")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.uSelectedOnly)
self.gridLayout.addLayout(self.formLayout_2, 1, 0, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label_2 = QtWidgets.QLabel(self.groupBox_2)
self.label_2.setObjectName("label_2")
self.horizontalLayout.addWidget(self.label_2)
self.uRemoveDuplicates = QtWidgets.QCheckBox(self.groupBox_2)
self.uRemoveDuplicates.setText("")
self.uRemoveDuplicates.setObjectName("uRemoveDuplicates")
self.horizontalLayout.addWidget(self.uRemoveDuplicates)
self.label_11 = QtWidgets.QLabel(self.groupBox_2)
self.label_11.setObjectName("label_11")
self.horizontalLayout.addWidget(self.label_11)
self.uDuplicateTolerance = QtWidgets.QDoubleSpinBox(self.groupBox_2)
self.uDuplicateTolerance.setDecimals(3)
self.uDuplicateTolerance.setMinimum(0.001)
self.uDuplicateTolerance.setMaximum(99999.999)
self.uDuplicateTolerance.setSingleStep(0.001)
self.uDuplicateTolerance.setProperty("value", 0.001)
self.uDuplicateTolerance.setObjectName("uDuplicateTolerance")
self.horizontalLayout.addWidget(self.uDuplicateTolerance)
self.uUseGridLabel = QtWidgets.QLabel(self.groupBox_2)
self.uUseGridLabel.setEnabled(True)
self.uUseGridLabel.setObjectName("uUseGridLabel")
self.horizontalLayout.addWidget(self.uUseGridLabel)
self.uUseGrid = QtWidgets.QCheckBox(self.groupBox_2)
self.uUseGrid.setText("")
self.uUseGrid.setObjectName("uUseGrid")
self.horizontalLayout.addWidget(self.uUseGrid)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.gridLayout.addLayout(self.horizontalLayout, 3, 0, 1, 1)
self.uLayerDescription = QtWidgets.QLabel(self.groupBox_2)
self.uLayerDescription.setText("")
self.uLayerDescription.setObjectName("uLayerDescription")
self.gridLayout.addWidget(self.uLayerDescription, 4, 0, 1, 1)
self.verticalLayout_2.addWidget(self.groupBox_2)
self.groupBox = QtWidgets.QGroupBox(self.scrollAreaWidgetContents_2)
self.groupBox.setObjectName("groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_2.setObjectName("gridLayout_2")
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.uLinesContours = QtWidgets.QRadioButton(self.groupBox)
self.uLinesContours.setObjectName("uLinesContours")
self.horizontalLayout_7.addWidget(self.uLinesContours)
self.uFilledContours = QtWidgets.QRadioButton(self.groupBox)
self.uFilledContours.setObjectName("uFilledContours")
self.horizontalLayout_7.addWidget(self.uFilledContours)
self.uBoth = QtWidgets.QRadioButton(self.groupBox)
self.uBoth.setObjectName("uBoth")
self.horizontalLayout_7.addWidget(self.uBoth)
self.uLayerContours = QtWidgets.QRadioButton(self.groupBox)
self.uLayerContours.setObjectName("uLayerContours")
self.horizontalLayout_7.addWidget(self.uLayerContours)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_7.addItem(spacerItem1)
self.gridLayout_2.addLayout(self.horizontalLayout_7, 0, 0, 1, 3)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem2, 10, 1, 1, 1)
self.label_5 = QtWidgets.QLabel(self.groupBox)
#.........这里部分代码省略.........