本文整理汇总了Python中qgis.gui.QgsAttributeEditorContext类的典型用法代码示例。如果您正苦于以下问题:Python QgsAttributeEditorContext类的具体用法?Python QgsAttributeEditorContext怎么用?Python QgsAttributeEditorContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsAttributeEditorContext类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, layer, iface):
super().__init__(None)
self.setWindowModality(Qt.WindowModal)
layout = QVBoxLayout()
layout.setMargin(0)
layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(layout)
dlgContext = QgsAttributeEditorContext()
dlgContext.setFormMode(QgsAttributeEditorContext.StandaloneDialog)
dlgContext.setAllowCustomUi(False)
self.form = QgsAttributeForm(layer, context=dlgContext, parent=self)
self.form.setMode(3)
self.configureForm()
layout.addWidget(self.form)
self.form.zoomToFeatures.connect(self.zoomToFeatures)
self.form.closed.connect(self.close)
self.setWindowTitle(self.tr('Filter NavTable Features by Form'))
self.expression = ''
开发者ID:fpsampayo,项目名称:qgis-navtable,代码行数:25,代码来源:NTSelectByFormDialog.py
示例2: __init__
def __init__(self, iface):
# QGIS
self.iface = iface
self.settings = MySettings()
self.linkRubber = QgsRubberBand(self.iface.mapCanvas())
self.featureHighlight = None
# Relation management
self.relationManager = QgsProject.instance().relationManager()
self.relationManager.changed.connect(self.loadRelations)
self.relation = QgsRelation()
self.referencingFeature = QgsFeature()
self.relationWidgetWrapper = None
self.editorContext = QgsAttributeEditorContext()
self.editorContext.setVectorLayerTools(self.iface.vectorLayerTools())
# GUI
QDockWidget.__init__(self)
self.setupUi(self)
SettingDialog.__init__(self, MySettings(), False, True)
self.drawButton.setChecked(self.settings.value("drawEnabled"))
self.relationReferenceWidget.setAllowMapIdentification(True)
self.relationReferenceWidget.setEmbedForm(False)
self.mapTool = QgsMapToolIdentifyFeature(self.iface.mapCanvas())
self.mapTool.setButton(self.identifyReferencingFeatureButton)
# Connect signal/slot
self.relationComboBox.currentIndexChanged.connect(self.currentRelationChanged)
self.mapTool.featureIdentified.connect(self.setReferencingFeature)
# load relations at start
self.loadRelations()
开发者ID:3nids,项目名称:linkit,代码行数:33,代码来源:linkerdock.py
示例3: __init__
def __init__(self, iface, data, data_path=""):
QDialog.__init__(self)
self.setupUi(self)
self.settings = MySettings()
self.data = data
self.currentProjectId = None
self.channelNameEdit.setFocus()
self.cancel = False
self.data_path_line_edit.setText(data_path)
self.pdf_path_widget.setDefaultRoot(data_path)
self.cannotImportLabel.hide()
self.progressBar.setTextVisible(True)
self.progressBar.hide()
self.cancelButton.hide()
self.pdf_path_widget.setDefaultRoot(data_path)
self.relationWidgetWrapper = None
maintenance_layer = QgsMapLayerRegistry.instance().mapLayer(self.settings.value("maintenance_layer"))
if maintenance_layer is not None:
field_idx = maintenance_layer.fieldNameIndex('fk_operating_company')
widget_config = maintenance_layer.editorWidgetV2Config(field_idx)
editor_context = QgsAttributeEditorContext()
editor_context.setVectorLayerTools(iface.vectorLayerTools())
self.relationWidgetWrapper = QgsEditorWidgetRegistry.instance().create("ValueRelation",
maintenance_layer,
field_idx,
widget_config,
self.operatingCompanyComboBox,
self,
editor_context)
self.sectionWidget.finish_init(iface, self.data)
for p_id, project in self.data.items():
self.projectCombo.addItem(project['Name'], p_id)
self.channelNameEdit.setText('')
开发者ID:3nids,项目名称:wincan2qgep,代码行数:40,代码来源:databrowserdialog.py
示例4: _newDialog
def _newDialog(self, cloneFeature):
feature = QgsFeature()
if (cloneFeature):
feature = QgsFeature(self._feature)
else:
feature = self._feature
context = QgsAttributeEditorContext()
myDa = QgsDistanceArea()
myDa.setSourceCrs(self._layer.crs())
myDa.setEllipsoidalMode(self._iface.mapCanvas().mapSettings().hasCrsTransformEnabled())
myDa.setEllipsoid(QgsProject.instance().readEntry('Measure', '/Ellipsoid', GEO_NONE)[0])
context.setDistanceArea(myDa)
context.setVectorLayerTools(self._iface.vectorLayerTools())
dialog = QgsAttributeDialog(self._layer, feature, cloneFeature, None, True, context)
if (self._layer.actions().size() > 0):
dialog.setContextMenuPolicy(Qt.ActionsContextMenu)
a = QAction(self.tr('Run actions'), dialog)
a.setEnabled(False)
dialog.addAction(a)
i = 0
for action in self._layer.actions():
if (action.runable()):
a = ArkFeatureAction(action.name(), feature, self._layer, i, -1, self._iface, dialog)
dialog.addAction(a)
a.triggered.connect(a.execute)
pb = dialog.findChild(action.name())
if (pb):
pb.clicked.connect(a.execute)
i += 1
return dialog
开发者ID:lparchaeology,项目名称:libarkqgis,代码行数:39,代码来源:map_tools.py
示例5: createWrapper
def createWrapper(self, layer, filter=None):
"""
Basic setup of a relation widget wrapper.
Will create a new wrapper and set its feature to the one and only book
in the table.
It will also assign some instance variables to help
* self.widget The created widget
* self.table_view The table view of the widget
:return: The created wrapper
"""
if layer == self.vl_b:
relation = self.rel_b
nmrel = self.rel_a
else:
relation = self.rel_a
nmrel = self.rel_b
parent = QWidget()
self.wrapper = QgsRelationWidgetWrapper(layer, relation)
self.wrapper.setConfig({'nm-rel': nmrel.id()})
context = QgsAttributeEditorContext()
context.setVectorLayerTools(self.vltools)
self.wrapper.setContext(context)
self.widget = self.wrapper.widget()
self.widget.show()
request = QgsFeatureRequest()
if filter:
request.setFilterExpression(filter)
book = layer.getFeatures(request).next()
self.wrapper.setFeature(book)
self.table_view = self.widget.findChild(QTableView)
return self.wrapper
开发者ID:barianet,项目名称:QGIS,代码行数:37,代码来源:test_qgsrelationeditwidget.py
示例6: LinkerDock
class LinkerDock(QDockWidget, Ui_linker, SettingDialog):
def __init__(self, iface):
# QGIS
self.iface = iface
self.settings = MySettings()
self.linkRubber = QgsRubberBand(self.iface.mapCanvas())
self.featureHighlight = None
# Relation management
self.relationManager = QgsProject.instance().relationManager()
self.relationManager.changed.connect(self.loadRelations)
self.relation = QgsRelation()
self.referencingFeature = QgsFeature()
self.relationWidgetWrapper = None
self.editorContext = QgsAttributeEditorContext()
self.editorContext.setVectorLayerTools(self.iface.vectorLayerTools())
# GUI
QDockWidget.__init__(self)
self.setupUi(self)
SettingDialog.__init__(self, MySettings(), False, True)
self.drawButton.setChecked(self.settings.value("drawEnabled"))
self.relationReferenceWidget.setAllowMapIdentification(True)
self.relationReferenceWidget.setEmbedForm(False)
self.mapTool = QgsMapToolIdentifyFeature(self.iface.mapCanvas())
self.mapTool.setButton(self.identifyReferencingFeatureButton)
# Connect signal/slot
self.relationComboBox.currentIndexChanged.connect(self.currentRelationChanged)
self.mapTool.featureIdentified.connect(self.setReferencingFeature)
# load relations at start
self.loadRelations()
def showEvent(self, QShowEvent):
self.drawLink()
def closeEvent(self, e):
self.iface.mapCanvas().unsetMapTool(self.mapTool)
self.linkRubber.reset()
self.deleteHighlight()
self.deleteWrapper()
self.disconnectLayer()
def disconnectLayer(self):
if self.relation.isValid():
self.relation.referencingLayer().editingStarted.disconnect(self.relationEditableChanged)
self.relation.referencingLayer().editingStopped.disconnect(self.relationEditableChanged)
self.relation.referencingLayer().attributeValueChanged.disconnect(self.layerValueChangedOutside)
def runForFeature(self, relationId, layer, feature):
index = self.relationComboBox.findData(relationId)
self.relationComboBox.setCurrentIndex(index)
self.setReferencingFeature(feature)
self.show()
if not layer.isEditable():
self.iface.messageBar().pushMessage("Link It", "Cannot set a new related feature since %s is not editable" % layer.name(), QgsMessageBar.WARNING, 4)
else:
self.relationReferenceWidget.mapIdentification()
@pyqtSlot(name="on_identifyReferencingFeatureButton_clicked")
def activateMapTool(self):
self.iface.mapCanvas().setMapTool(self.mapTool)
def deactivateMapTool(self):
self.iface.mapCanvas().unsetMapTool(self.mapTool)
def loadRelations(self):
self.deleteWrapper()
self.disconnectLayer()
self.relation = QgsRelation()
self.referencingFeature = QgsFeature()
self.relationComboBox.currentIndexChanged.disconnect(self.currentRelationChanged)
self.relationComboBox.clear()
for relation in self.relationManager.referencedRelations():
if relation.referencingLayer().hasGeometryType():
self.relationComboBox.addItem(relation.name(), relation.id())
self.relationComboBox.setCurrentIndex(-1)
self.relationComboBox.currentIndexChanged.connect(self.currentRelationChanged)
self.currentRelationChanged(-1)
def currentRelationChanged(self, index):
# disconnect previous relation
if self.relation.isValid():
try:
self.relation.referencingLayer().editingStarted.disconnect(self.relationEditableChanged)
self.relation.referencingLayer().editingStopped.disconnect(self.relationEditableChanged)
self.relation.referencingLayer().attributeValueChanged.disconnect(self.layerValueChangedOutside)
except TypeError:
pass
self.referencingFeatureLayout.setEnabled(index >= 0)
relationId = self.relationComboBox.itemData(index)
self.relation = self.relationManager.relation(relationId)
self.mapTool.setLayer(self.relation.referencingLayer())
self.setReferencingFeature()
# connect
if self.relation.isValid():
self.relation.referencingLayer().editingStarted.connect(self.relationEditableChanged)
#.........这里部分代码省略.........
开发者ID:3nids,项目名称:linkit,代码行数:101,代码来源:linkerdock.py
注:本文中的qgis.gui.QgsAttributeEditorContext类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论