def initGui(self): """Create the menu entries and toolbar icons inside the QGIS GUI.""" icon_path = ':/plugins/UAVPreparer/icon.png' self.add_action( icon_path, text=self.tr(self.tr(u'Unmanned Aerial Vehicle Preparer')), callback=self.run, parent=self.iface.mainWindow()) # Access the raster layer self.layerComboManagerDSM = QgsMapLayerComboBox(self.dlg.widgetDSM) self.layerComboManagerDSM.setFilters(QgsMapLayerProxyModel.RasterLayer) self.layerComboManagerDSM.setFixedWidth(175) self.layerComboManagerDSM.setCurrentIndex(-1) # Access the vector layer and an attribute field self.layerComboManagerPoint = QgsMapLayerComboBox(self.dlg.widgetPoint) self.layerComboManagerPoint.setCurrentIndex(-1) self.layerComboManagerPoint.setFilters(QgsMapLayerProxyModel.PointLayer) self.layerComboManagerPoint.setFixedWidth(175) self.layerComboManagerPointField = QgsFieldComboBox(self.dlg.widgetField) self.layerComboManagerPointField.setFilters(QgsFieldProxyModel.Numeric) self.layerComboManagerPoint.layerChanged.connect(self.layerComboManagerPointField.setLayer) # Set up of file save dialog self.fileDialog = QFileDialog() self.dlg.selectButton.clicked.connect(self.savefile) # Set up for the Help button self.dlg.helpButton.clicked.connect(self.help) # Set up for the Run button self.dlg.runButton.clicked.connect(self.start_progress)
def widgetFromParameter(self, param): paramtype = param["type"] if paramtype == FILES: def edit(textbox): f = QFileDialog.getOpenFileNames(self, "Select file", "", "*.*") if f: textbox.value = ",".join(f) return TextBoxWithLink("Browse", edit, None, True) elif paramtype == FOLDER: def edit(textbox): f = QFileDialog.getExistingDirectory(self, "Select folder", "") if f: textbox.value = f return TextBoxWithLink("Browse", edit, None, True) elif paramtype == BOOL: check = QCheckBox(param["label"]) if param["default"]: check.setCheckState(Qt.Checked) else: check.setCheckState(Qt.Unchecked) return check elif paramtype == CHOICE: combo = QComboBox() for option in param["options"]: combo.addItem(option) idx = combo.findText(str(param["default"])) combo.setCurrentIndex(idx) return combo elif paramtype == TEXT: textEdit = QTextEdit() textEdit.setPlainText(param["default"]) return textEdit elif paramtype == VECTOR: combo = QgsMapLayerComboBox() combo.setFilters(QgsMapLayerProxyModel.VectorLayer) return combo elif paramtype == RASTER: combo = QgsMapLayerComboBox() combo.setFilters(QgsMapLayerProxyModel.RasterLayer) return combo elif paramtype == PASSWORD: lineEdit = QLineEdit() lineEdit.setEchoMode(QLineEdit.Password) return lineEdit else: lineEdit = QLineEdit() lineEdit.setText(str(param["default"])) return lineEdit
def __init__(self, iface): """Constructor. :param iface: An interface instance that will be passed to this class which provides the hook by which you can manipulate the QGIS application at run time. :type iface: QgsInterface """ # Save reference to the QGIS interface self.iface = iface # initialize plugin directory self.plugin_dir = os.path.dirname(__file__) # initialize locale locale = QSettings().value('locale/userLocale')[0:2] locale_path = os.path.join( self.plugin_dir, 'i18n', 'PotentialSlopeFailure_{}.qm'.format(locale)) if os.path.exists(locale_path): self.translator = QTranslator() self.translator.load(locale_path) if qVersion() > '4.3.3': QCoreApplication.installTranslator(self.translator) self.dlg = PotentialSlopeFailureDialog(self.iface) self.dlg.runButton.clicked.connect(self.start_progress) self.dlg.pushButtonHelp.clicked.connect(self.help) self.dlg.pushButtonSave.clicked.connect(self.folder_path) self.fileDialog = QFileDialog() self.fileDialog.setFileMode(QFileDialog.Directory) self.fileDialog.setOption(QFileDialog.ShowDirsOnly, True) # Declare instance attributes #self.actions = [] #self.menu = self.tr(u'&Potential Slope Failure') # TODO: We are going to let the user set this up in a future iteration #self.toolbar = self.iface.addToolBar(u'PotentialSlopeFailure') #self.toolbar.setObjectName(u'PotentialSlopeFailure') # self.layerComboManagerDEM = RasterLayerCombo(self.dlg.comboBoxDem) # RasterLayerCombo(self.dlg.comboBoxDem, initLayer="") # self.layerComboManagerSOIL = RasterLayerCombo(self.dlg.comboBoxSoil) # RasterLayerCombo(self.dlg.comboBoxSoil, initLayer="") self.layerComboManagerDEM = QgsMapLayerComboBox(self.dlg.widgetDEM) self.layerComboManagerDEM.setFilters(QgsMapLayerProxyModel.RasterLayer) self.layerComboManagerDEM.setFixedWidth(175) self.layerComboManagerSOIL = QgsMapLayerComboBox(self.dlg.widgetSOIL) self.layerComboManagerSOIL.setFilters( QgsMapLayerProxyModel.RasterLayer) self.layerComboManagerSOIL.setFixedWidth(175) self.folderPath = 'None'
def setupUi(self): self.resize(400, 400) self.setWindowTitle('Upload layer to Shogun') title = QtGui.QLabel(self) title.setGeometry(50, 30, 300, 70) title.setText( 'Please select the layer you wish to upload to the \n Shogun Server' ) self.layerBox = QgsMapLayerComboBox(self) self.layerBox.setGeometry(QRect(50, 100, 300, 30)) self.uploadButton = QtGui.QPushButton(self) self.uploadButton.setGeometry(QRect(250, 160, 100, 35)) self.uploadButton.setText('Upload Layer') self.cancelButton = QtGui.QPushButton(self) self.cancelButton.setGeometry(QRect(140, 160, 100, 35)) self.cancelButton.setText('Cancel') self.cancelButton.clicked.connect(self.hide) self.logWindow = QtGui.QTextEdit(self) self.logWindow.setGeometry(QRect(50, 200, 300, 180)) self.logWindow.setReadOnly(True) self.logWindow.setText('Upload Log:')
def _build_widgets(self): """Builds own widgets.""" self.lastBpejLayer = None self.bpejMapLayerComboBox = QgsMapLayerComboBox(self) self.bpejMapLayerComboBox.setObjectName(u'bpejMapLayerComboBox') self.bpejMapLayerComboBox.setFilters( QgsMapLayerProxyModel.PolygonLayer) self.bpejMapLayerComboBox.activated.connect(self._set_last_bpej_layer) QgsMapLayerRegistry.instance().layersAdded.connect( self._rollback_bpej_layer) QgsMapLayerRegistry.instance().layersRemoved.connect( self._reset_bpej_layer) self.set_bpej_layer(self.lastBpejLayer) self.vBoxLayout.addWidget(self.bpejMapLayerComboBox) self.bpejFieldComboBox = QgsFieldComboBox(self) self.bpejFieldComboBox.setObjectName(u'bpejFieldComboBox') self.bpejFieldComboBox.setLayer( self.bpejMapLayerComboBox.currentLayer()) self.vBoxLayout.addWidget(self.bpejFieldComboBox) self.bpejMapLayerComboBox.layerChanged.connect( self.bpejFieldComboBox.setLayer)
def mapLayerComboBox(self): """ Retrieves the configured map layer selection combo box. :return: (QgsMapLayerComboBox) configured layer selection widget. """ cb = QgsMapLayerComboBox() return cb
def testFilterByLayer(self): """ test filtering by layer""" QgsProject.instance().clear() m = QgsMapLayerComboBox() l1 = QgsVectorLayer( "Point?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'layer 1', "memory") QgsProject.instance().addMapLayer(l1) l2 = QgsVectorLayer( "Polygon?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'lAyEr 2', "memory") QgsProject.instance().addMapLayer(l2) l3 = QgsVectorLayer("None?field=fldtxt:string&field=fldint:integer", 'another', "memory") QgsProject.instance().addMapLayer(l3) l4 = QgsVectorLayer( "LineString?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'final layer', "memory") QgsProject.instance().addMapLayer(l4) self.assertEqual(m.count(), 4) self.assertEqual(m.itemText(0), 'another') self.assertEqual(m.itemText(1), 'final layer') self.assertEqual(m.itemText(2), 'layer 1') self.assertEqual(m.itemText(3), 'lAyEr 2') m.setExceptedLayerList([l1, l3]) self.assertEqual(m.count(), 2) self.assertEqual(m.itemText(0), 'final layer') self.assertEqual(m.itemText(1), 'lAyEr 2') m.setExceptedLayerList([l2, l4]) self.assertEqual(m.count(), 2) self.assertEqual(m.itemText(0), 'another') self.assertEqual(m.itemText(1), 'layer 1')
def __init__(self, iface): QgsDockWidget.__init__( self, QCoreApplication.translate('AttributesDock', 'Quick Attribution')) self.iface = iface self.widget = QWidget() self.widget.setLayout(QGridLayout()) self.widget.setContentsMargins(0, 0, 0, 0) self.layerComboBox = QgsMapLayerComboBox() self.layerComboBox.layerChanged.connect(self.setLayer) self.layerComboBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.layerTitleLabel = QLabel() self.widget.layout().addWidget(self.layerTitleLabel, 0, 0, 1, 1) self.widget.layout().addWidget(self.layerComboBox, 0, 1, 1, 1) self.formWidget = QWidget() self.formWidget.setLayout(QGridLayout()) self.formWidget.setContentsMargins(0, 0, 0, 0) self.widget.layout().addWidget(self.formWidget, 1, 0, 1, 2) self.setWidget(self.widget) self.attributeForm = None self.layer = None self.feature = None self.layerComboBox.setFilters(QgsMapLayerProxyModel.WritableLayer | QgsMapLayerProxyModel.VectorLayer) QgsProject.instance().readProject.connect(self.onProjectRead)
def __init__(self, gtoObj, parent=None): super(GtoWidgetQgisLayers, self).__init__(parent) # QWidgetAction.__init__(self,parent) self.gtomain = gtoObj.gtomain self.info = self.gtomain.info self.iface = self.gtomain.iface self.canvas = self.iface.mapCanvas() self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) self.qgsLayers = QgsMapLayerComboBox() self.qgsLayers.setMinimumContentsLength(25) self.qgsLayers.setMinimumWidth(300) self.qgsLayers.setCurrentIndex(-1) self.qgsLayers.setFilters(QgsMapLayerProxyModel.VectorLayer) #signals self.canvas.currentLayerChanged.connect(self.qgsLayers.setLayer) self.qgsLayers.layerChanged.connect(self.layer_changed) self.canvas.selectionChanged.connect(self.selection_changed) # ui lay = QHBoxLayout(self) self.caption = 'Layer: ({0})' self.lblLayer = QLabel('Layer:') self.lblLayer.setToolTip("Aktiver Layer (selected features)") lay.addWidget(self.lblLayer) lay.addWidget(self.qgsLayers) self.setLayout(lay) # help QgsMapLayerComboBox ..:O self.timer = QTimer() self.timer.singleShot(100, self._setLayer)
def setupUi(self, Targetselection): Targetselection.setObjectName("Targetselection") Targetselection.resize(438, 328) Targetselection.setModal(True) self.verticalLayout = QtWidgets.QVBoxLayout(Targetselection) self.verticalLayout.setObjectName("verticalLayout") self.layerLabel = QtWidgets.QLabel(Targetselection) self.layerLabel.setObjectName("layerLabel") self.verticalLayout.addWidget(self.layerLabel) self.targetLayerComboBox = QgsMapLayerComboBox(Targetselection) self.targetLayerComboBox.setObjectName("targetLayerComboBox") self.verticalLayout.addWidget(self.targetLayerComboBox) self.fieldTable = QtWidgets.QTableWidget(Targetselection) self.fieldTable.setColumnCount(2) self.fieldTable.setObjectName("fieldTable") self.fieldTable.setRowCount(0) self.fieldTable.horizontalHeader().setVisible(False) self.fieldTable.horizontalHeader().setStretchLastSection(True) self.verticalLayout.addWidget(self.fieldTable) self.buttonBox = QtWidgets.QDialogButtonBox(Targetselection) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.verticalLayout.addWidget(self.buttonBox) self.verticalLayout.setStretch(2, 1) self.retranslateUi(Targetselection) self.buttonBox.rejected.connect(Targetselection.reject) QtCore.QMetaObject.connectSlotsByName(Targetselection)
def setupUi(self, LayerSelector): LayerSelector.setObjectName(_fromUtf8("LayerSelector")) LayerSelector.resize(400, 153) self.verticalLayout = QtGui.QVBoxLayout(LayerSelector) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.label = QtGui.QLabel(LayerSelector) self.label.setObjectName(_fromUtf8("label")) self.verticalLayout.addWidget(self.label) self.layerCombo = QgsMapLayerComboBox(LayerSelector) self.layerCombo.setFilters(QgsMapLayerProxyModel.RasterLayer) self.layerCombo.setObjectName(_fromUtf8("layerCombo")) self.verticalLayout.addWidget(self.layerCombo) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.buttonBox = QtGui.QDialogButtonBox(LayerSelector) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setCenterButtons(True) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(LayerSelector) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), LayerSelector.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), LayerSelector.reject) QtCore.QMetaObject.connectSlotsByName(LayerSelector)
def __init__(self, gtomain, parent=None): super(GtoWidgetActiveLayer, self).__init__(parent) # QWidgetAction.__init__(self,parent) self.iface = gtomain.iface self.info = gtomain.info self.canvas = self.iface.mapCanvas() # ui lay = QHBoxLayout(self) self.lblCaption = QLabel('Layer:') self.lblCaption.setToolTip("Aktiver Layer (selected features)") lay.addWidget(self.lblCaption) self.lblLayer = QLabel() self.qgsLayers = QgsMapLayerComboBox() self.qgsLayers.setCurrentIndex(-1) self.qgsLayers.setFilters(QgsMapLayerProxyModel.VectorLayer) lay.addWidget(self.lblLayer) self.setLayout(lay) # signals self.canvas.currentLayerChanged.connect(self.layer_changed) self.canvas.selectionChanged.connect(self.selection_changed) # start self.layer_changed(self.iface.activeLayer())
def setupUi(self, selectLayer_dlg): selectLayer_dlg.setObjectName(_fromUtf8("selectLayer_dlg")) selectLayer_dlg.resize(400, 101) self.verticalLayout = QtGui.QVBoxLayout(selectLayer_dlg) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.label = QtGui.QLabel(selectLayer_dlg) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName(_fromUtf8("label")) self.verticalLayout.addWidget(self.label) self.selectLayer_CBox = QgsMapLayerComboBox(selectLayer_dlg) self.selectLayer_CBox.setObjectName(_fromUtf8("selectLayer_CBox")) self.verticalLayout.addWidget(self.selectLayer_CBox) self.buttonBox = QtGui.QDialogButtonBox(selectLayer_dlg) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.retranslateUi(selectLayer_dlg) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), selectLayer_dlg.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), selectLayer_dlg.reject) QtCore.QMetaObject.connectSlotsByName(selectLayer_dlg)
def __init__(self, parent=None, iface=None): """Constructor.""" super(OverlapDialog, self).__init__(parent) # Set up the user interface from Designer through FORM_CLASS. # After self.setupUi() you can access any designer object by doing # self.<objectname>, and you can use autoconnect slots - see # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html # #widgets-and-dialogs-with-auto-connect QDialog.__init__(self, parent) self.parent = parent self.iface = iface self.setupUi(self) # layer self.layer = QgsMapLayerComboBox(parent) self.layer.setFilters(QgsMapLayerProxyModel.PolygonLayer) # self.layer.layerChanged.connect(self.check_form_validation) # output self.result.setStorageMode(storageMode=QgsFileWidget.SaveFile) self.result.setDialogTitle("Save File") # Set up things for ok button self.ok_button = self.button_ovelap.button(QDialogButtonBox.Ok) # self.ok_button.setEnabled(False) self.ok_button.clicked.connect(self.accept) # Set up things for cancel button self.cancel_button = self.button_ovelap.button(QDialogButtonBox.Cancel) self.cancel_button.clicked.connect(self.reject)
def setupUi(self, hcmgis_closestpair_form): hcmgis_closestpair_form.setObjectName("hcmgis_closestpair_form") hcmgis_closestpair_form.setWindowModality(QtCore.Qt.ApplicationModal) hcmgis_closestpair_form.setEnabled(True) hcmgis_closestpair_form.resize(352, 136) hcmgis_closestpair_form.setMouseTracking(False) self.BtnOKCancel = QtWidgets.QDialogButtonBox(hcmgis_closestpair_form) self.BtnOKCancel.setGeometry(QtCore.QRect(190, 100, 156, 31)) self.BtnOKCancel.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.BtnOKCancel.setObjectName("BtnOKCancel") self.LblInput = QtWidgets.QLabel(hcmgis_closestpair_form) self.LblInput.setGeometry(QtCore.QRect(10, 7, 331, 16)) self.LblInput.setObjectName("LblInput") self.CboInput = QgsMapLayerComboBox(hcmgis_closestpair_form) self.CboInput.setGeometry(QtCore.QRect(10, 24, 331, 21)) self.CboInput.setObjectName("CboInput") self.LblInput_2 = QtWidgets.QLabel(hcmgis_closestpair_form) self.LblInput_2.setGeometry(QtCore.QRect(10, 56, 331, 16)) self.LblInput_2.setObjectName("LblInput_2") self.CboField = QgsFieldComboBox(hcmgis_closestpair_form) self.CboField.setGeometry(QtCore.QRect(10, 75, 331, 21)) self.CboField.setObjectName("CboField") self.retranslateUi(hcmgis_closestpair_form) self.BtnOKCancel.accepted.connect(hcmgis_closestpair_form.accept) self.BtnOKCancel.rejected.connect(hcmgis_closestpair_form.reject) QtCore.QMetaObject.connectSlotsByName(hcmgis_closestpair_form)
def testSignals(self): QgsProject.instance().clear() m = QgsMapLayerComboBox() l1 = QgsVectorLayer( "Point?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'layer 1', "memory") QgsProject.instance().addMapLayer(l1) l2 = QgsVectorLayer( "Polygon?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'lAyEr 2', "memory") QgsProject.instance().addMapLayer(l2) spy = QSignalSpy(m.layerChanged) m.setLayer(l2) self.assertEqual(len(spy), 1) self.assertEqual(m.currentLayer(), l2) m.setLayer(l1) self.assertEqual(len(spy), 2) self.assertEqual(m.currentLayer(), l1) # no signal if same layer m.setLayer(l1) self.assertEqual(len(spy), 2) m.setAllowEmptyLayer(True) m.setLayer(None) self.assertEqual(len(spy), 3) self.assertIsNone(m.currentLayer()) m.setLayer(None) self.assertEqual(len(spy), 3) self.assertIsNone(m.currentLayer()) m.setLayer(l1) self.assertEqual(len(spy), 4) self.assertEqual(m.currentLayer(), l1)
def createWidget(self): if self.dialogType == DIALOG_STANDARD: widget = QWidget() layout = QHBoxLayout() layout.setMargin(0) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(2) self.combo = QgsMapLayerComboBox() layout.addWidget(self.combo) btn = QToolButton() btn.setText('...') btn.setToolTip(self.tr("Select file")) btn.clicked.connect(self.selectFile) layout.addWidget(btn) widget.setLayout(layout) if self.param.optional: self.combo.setAllowEmptyLayer(True) self.combo.setFilters(QgsMapLayerProxyModel.VectorLayer) self.combo.setExcludedProviders(['grass']) try: if iface.activeLayer().type() == QgsMapLayer.VectorLayer: self.combo.setLayer(iface.activeLayer()) except: pass self.combo.currentIndexChanged.connect(lambda: self.widgetValueHasChanged.emit(self)) self.combo.currentTextChanged.connect(lambda: self.widgetValueHasChanged.emit(self)) return widget elif self.dialogType == DIALOG_BATCH: return BatchInputSelectionPanel(self.param, self.row, self.col, self.dialog) else: self.combo = QComboBox() layers = self.dialog.getAvailableValuesOfType(ParameterRaster, OutputRaster) self.combo.setEditable(True) tables = self.dialog.getAvailableValuesOfType(ParameterTable, OutputTable) layers = self.dialog.getAvailableValuesOfType(ParameterVector, OutputVector) if self.param.optional: self.combo.addItem(self.NOT_SELECTED, None) for table in tables: self.combo.addItem(self.dialog.resolveValueDescription(table), table) for layer in layers: self.combo.addItem(self.dialog.resolveValueDescription(layer), layer) widget = QWidget() layout = QHBoxLayout() layout.setMargin(0) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(2) layout.addWidget(self.combo) btn = QToolButton() btn.setText('...') btn.setToolTip(self.tr("Select file")) btn.clicked.connect(self.selectFile) layout.addWidget(btn) widget.setLayout(layout) return widget
def initGui(self): self.toolbar = self.iface.addToolBar(u'TIN Tools') self.toolbar.setObjectName(u'tintools') label = QLabel('Capa TIN:') self.toolbar.addWidget(label) self.tin_cb = QgsMapLayerComboBox() self.tin_cb.setMinimumWidth(200) self.tin_cb.setFilters(QgsMapLayerProxyModel.VectorLayer) self.tin_cb.layerChanged.connect(self.tinLayerChanged) self.toolbar.addWidget(self.tin_cb) # icon_path = self.plugin_dir +'/icon.png' # icon = QIcon(icon_path) #'\u0394 \u2B16 \u20E4 \u2350 \u21C8 \u2963 \u2B7F \u2b85 \u23C4 \u25e9' self.calc_plane_action = QAction('\u0394', self.iface.mainWindow()) self.calc_plane_action.triggered.connect(self.calcPlaneEquation) self.toolbar.addAction(self.calc_plane_action) self.calc_z = QAction('\u21C8', self.iface.mainWindow()) self.calc_z.triggered.connect(self.calcZ) self.toolbar.addAction(self.calc_z) self.adjust_to_tin = QAction('\u25e9', self.iface.mainWindow()) self.adjust_to_tin.triggered.connect(self.adjustToTin) self.toolbar.addAction(self.adjust_to_tin) self.tinLayerChanged(self.tin_cb.currentLayer())
def setLayerBoxWidget(self): self.layerCombo = QgsMapLayerComboBox() self.layerCombo.setFilters(QgsMapLayerProxyModel.LineLayer) layout = self.layerComboLayout layout.addWidget(self.layerCombo) self.fieldCombo = QgsFieldComboBox() self.layoutForField.addWidget(self.fieldCombo)
def run(self): """Run method that performs all the real work""" # Create the dialog with elements (after translation) and keep reference # Only create GUI ONCE in callback, so that it will only load when the plugin is started if self.first_start == True: self.first_start = False self.dlg = UAVPreparerDialog() # Access the raster layer self.layerComboManagerDSM = QgsMapLayerComboBox(self.dlg.widgetDSM) self.layerComboManagerDSM.setFilters(QgsMapLayerProxyModel.RasterLayer) self.layerComboManagerDSM.setFixedWidth(175) self.layerComboManagerDSM.setCurrentIndex(-1) # Access the vector layer and an attribute field self.layerComboManagerPoint = QgsMapLayerComboBox( self.dlg.widgetPointLayer) self.layerComboManagerPoint.setCurrentIndex(-1) self.layerComboManagerPoint.setFilters( QgsMapLayerProxyModel.PointLayer) self.layerComboManagerPoint.setFixedWidth(175) self.layerComboManagerPointField = QgsFieldComboBox( self.dlg.widgetField) self.layerComboManagerPointField.setFilters(QgsFieldProxyModel.Numeric) self.layerComboManagerPoint.layerChanged.connect( self.layerComboManagerPointField.setLayer) # Set up of file save dialog self.fileDialog = QFileDialog() self.dlg.pushButtonSave.clicked.connect(self.savefile) # Set up for the Help button self.dlg.helpButton.clicked.connect(self.help) # Set up for the Run button self.dlg.runButton.clicked.connect(self.start_progress) # show the dialog self.dlg.show() # Run the dialog event loop result = self.dlg.exec_() # See if OK was pressed if result: # Do something useful here - delete the line containing pass and # substitute with your code. pass
def mapLayerComboBox(self): """ Retrieves the configured map layer selection combo box. :return: (QgsMapLayerComboBox) configured layer selection widget. """ cb = QgsMapLayerComboBox() cb.setFilters(QgsMapLayerProxyModel.VectorLayer) return cb
def __init__(self, parent=None): QDialog.__init__(self, parent) self.resize(500, 100) self.setWindowTitle("Settings") layout = QGridLayout(self) csTargetLayerName = getCSLayerName() bufferTargetLayerName = getRZLayerName() csLable = QLabel("Compressor staitions layer:") csLable.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) layout.addWidget(csLable, 0, 0) self.__csLayerName = QgsMapLayerComboBox() self.__csLayerName.setEditable(True) self.__csLayerName.setFilters(QgsMapLayerProxyModel.PointLayer) self.__csLayerName.setEditText(csTargetLayerName) self.__csLayerName.layerChanged.connect(self.csLayerChooze) self.__csLayerName.editTextChanged.connect(self.csLayernameSave) self.__csLayerName.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) layout.addWidget(self.__csLayerName, 0, 1) self.__csIdField = QgsFieldComboBox() self.__csIdField.setEditable(True) self.__csIdField.fieldChanged.connect(self.csIdFiledChooze) self.__csIdField.editTextChanged.connect(self.csIdFieldSave) self.__csIdField.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.csIdFieldFill() layout.addWidget(self.__csIdField, 0, 2) bufferLable = QLabel("Buffer layer:") bufferLable.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) layout.addWidget(bufferLable, 1, 0) # self.__bufferLayerName = QLineEdit(bufferTargetLayerName, self) # self.__bufferLayerName.editingFinished.connect(self.bufferTargetLayernameSave) self.__bufferLayerName = QgsMapLayerComboBox() self.__bufferLayerName.setEditable(True) self.__bufferLayerName.setFilters(QgsMapLayerProxyModel.PolygonLayer) self.__bufferLayerName.setEditText(bufferTargetLayerName) self.__bufferLayerName.layerChanged.connect(self.bufferLayerChooze) self.__bufferLayerName.editTextChanged.connect( self.bufferLayernameSave) layout.addWidget(self.__bufferLayerName, 1, 1)
def setupUi(self): ''' set up the user interface ''' self.setMinimumWidth(500) self.setWindowTitle('Neues Projekt erstellen') project_manager = ProjectManager() self.project_names = [p.name for p in project_manager.projects] layout = QVBoxLayout(self) label = QLabel('Name des Projekts') self.name_edit = QLineEdit() self.name_edit.textChanged.connect(self.validate) layout.addWidget(label) layout.addWidget(self.name_edit) self.path = os.path.join(project_manager.settings.TEMPLATE_PATH, 'projektflaechen') hlayout = QHBoxLayout(self) label = QLabel('Import der (Teil-)Flächen des Plangebiets') self.layer_combo = QgsMapLayerComboBox() self.layer_combo.setFilters(QgsMapLayerProxyModel.VectorLayer) self.source = None self.layer_combo.layerChanged.connect(self.set_layer) self.layer_combo.layerChanged.connect(self.validate) browse_button = QPushButton('...') browse_button.clicked.connect(self.browse_path) browse_button.setMaximumWidth(30) hlayout.addWidget(self.layer_combo) hlayout.addWidget(browse_button) layout.addWidget(label) layout.addLayout(hlayout) self.status_label = QLabel() layout.addWidget(self.status_label) spacer = QSpacerItem( 20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) layout.addItem(spacer) buttons = QDialogButtonBox( QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self) self.ok_button = buttons.button(QDialogButtonBox.Ok) self.ok_button.setEnabled(False) buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) layout.addWidget(buttons) if len(self.layer_combo) > 0: self.set_layer(self.layer_combo.currentLayer()) self.layer_combo.setCurrentIndex(0)
def initGui(self): """Creates application GUI widgets""" self.initProcessing() self.dock = VertexDockWidget(self.iface.mapCanvas()) self.iface.addDockWidget(Qt.RightDockWidgetArea, self.dock) self.dock.setUserVisible(False) self.toolbar = QToolBar(self.tr('Vertex Compare Toolbar')) self.toolbar.setObjectName('vertexCompareToolbar') self.iface.addToolBar(self.toolbar) self.layer_combo = QgsMapLayerComboBox() self.layer_combo.setAllowEmptyLayer(True, self.tr('Disabled')) self.layer_combo.setFilters(QgsMapLayerProxyModel.PolygonLayer | QgsMapLayerProxyModel.LineLayer) self.layer_combo.setMinimumWidth( QFontMetrics(self.layer_combo.font()).width('x') * 40) self.layer_combo.setCurrentIndex(0) self.layer_combo.layerChanged.connect(self._set_layer) self.toolbar.addWidget(self.layer_combo) self.show_vertices_action = QAction(self.tr("Show Vertex Numbers"), self) self.show_vertices_action.setIcon( GuiUtils.get_icon('show_vertex_numbers.svg')) self.show_vertices_action.setCheckable(True) self.show_vertices_action.setEnabled(False) self.actions.append(self.show_vertices_action) self.toolbar.addAction(self.show_vertices_action) self.show_vertices_action.toggled.connect( self.vertex_highlighter.set_visible) self.show_topology_action = QAction(self.tr("Compare Vertices"), self) self.show_topology_action.setIcon(GuiUtils.get_icon('topology.svg')) self.show_topology_action.setCheckable(True) self.actions.append(self.show_topology_action) self.toolbar.addAction(self.show_topology_action) self.show_topology_action.toggled.connect( self.vertex_highlighter.set_topological) self.show_dock_action = QAction(self.tr('Show Vertices'), parent=self.toolbar) self.show_dock_action.setIcon(GuiUtils.get_icon('vertex_table.svg')) self.toolbar.addAction(self.show_dock_action) self.actions.append(self.show_dock_action) self.dock.setToggleVisibilityAction(self.show_dock_action) self.selection_handler.selection_changed.connect( self._selection_changed) self.dock.label_filter_changed.connect(self.vertex_highlighter.redraw) self.dock.vertex_symbol_changed.connect(self.vertex_highlighter.redraw) self.dock.vertex_text_format_changed.connect( self.vertex_highlighter.redraw) self.dock.selected_vertex_changed.connect( self.vertex_highlighter.set_selected_vertex)
def createWidget(self): if self.dialogType == DIALOG_STANDARD: widget = QWidget() layout = QHBoxLayout() layout.setMargin(0) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(2) self.combo = QgsMapLayerComboBox() layout.addWidget(self.combo) btn = QToolButton() btn.setText('...') btn.setToolTip(self.tr("Select file")) btn.clicked.connect(self.selectFile) layout.addWidget(btn) widget.setLayout(layout) if self.param.optional: self.combo.setAllowEmptyLayer(True) if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF): self.combo.setShowCrs(True) self.combo.setFilters(QgsMapLayerProxyModel.RasterLayer) self.combo.setExcludedProviders(['grass']) self.combo.currentIndexChanged.connect( lambda: self.widgetValueHasChanged.emit(self)) self.combo.currentTextChanged.connect( lambda: self.widgetValueHasChanged.emit(self)) return widget elif self.dialogType == DIALOG_BATCH: return BatchInputSelectionPanel(self.param, self.row, self.col, self.dialog) else: self.combo = QComboBox() layers = self.dialog.getAvailableValuesOfType( ParameterRaster, OutputRaster) self.combo.setEditable(True) for layer in layers: self.combo.addItem(self.dialog.resolveValueDescription(layer), layer) if self.param.optional: self.combo.setEditText("") widget = QWidget() layout = QHBoxLayout() layout.setMargin(0) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(2) layout.addWidget(self.combo) btn = QToolButton() btn.setText('...') btn.setToolTip(self.tr("Select file")) btn.clicked.connect(self.selectFile) layout.addWidget(btn) widget.setLayout(layout) return widget
def setupUi(self, hcmgis_reprojection_form): hcmgis_reprojection_form.setObjectName("hcmgis_reprojection_form") hcmgis_reprojection_form.setWindowModality(QtCore.Qt.ApplicationModal) hcmgis_reprojection_form.setEnabled(True) hcmgis_reprojection_form.resize(370, 288) hcmgis_reprojection_form.setMouseTracking(False) self.verticalLayout = QtWidgets.QVBoxLayout(hcmgis_reprojection_form) self.verticalLayout.setSpacing(7) self.verticalLayout.setObjectName("verticalLayout") self.LblInput = QtWidgets.QLabel(hcmgis_reprojection_form) self.LblInput.setObjectName("LblInput") self.verticalLayout.addWidget(self.LblInput) self.CboInput = QgsMapLayerComboBox(hcmgis_reprojection_form) self.CboInput.setShowCrs(True) self.CboInput.setObjectName("CboInput") self.verticalLayout.addWidget(self.CboInput) self.LblOutput_4 = QtWidgets.QLabel(hcmgis_reprojection_form) self.LblOutput_4.setObjectName("LblOutput_4") self.verticalLayout.addWidget(self.LblOutput_4) self.crs = QgsProjectionSelectionWidget(hcmgis_reprojection_form) self.crs.setObjectName("crs") self.verticalLayout.addWidget(self.crs) self.LblOutput_3 = QtWidgets.QLabel(hcmgis_reprojection_form) self.LblOutput_3.setObjectName("LblOutput_3") self.verticalLayout.addWidget(self.LblOutput_3) self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") self.LinOutput = QtWidgets.QLineEdit(hcmgis_reprojection_form) self.LinOutput.setEnabled(True) self.LinOutput.setMouseTracking(True) self.LinOutput.setFocusPolicy(QtCore.Qt.StrongFocus) self.LinOutput.setAcceptDrops(False) self.LinOutput.setText("") self.LinOutput.setReadOnly(False) self.LinOutput.setObjectName("LinOutput") self.gridLayout.addWidget(self.LinOutput, 0, 0, 1, 1) self.BtnOutput = QtWidgets.QPushButton(hcmgis_reprojection_form) self.BtnOutput.setEnabled(True) font = QtGui.QFont() font.setBold(False) font.setWeight(50) self.BtnOutput.setFont(font) self.BtnOutput.setObjectName("BtnOutput") self.gridLayout.addWidget(self.BtnOutput, 0, 1, 1, 1) self.verticalLayout.addLayout(self.gridLayout) self.BtnOKCancel = QtWidgets.QDialogButtonBox(hcmgis_reprojection_form) self.BtnOKCancel.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.BtnOKCancel.setObjectName("BtnOKCancel") self.verticalLayout.addWidget(self.BtnOKCancel) self.retranslateUi(hcmgis_reprojection_form) self.BtnOKCancel.accepted.connect(hcmgis_reprojection_form.accept) self.BtnOKCancel.rejected.connect(hcmgis_reprojection_form.reject) QtCore.QMetaObject.connectSlotsByName(hcmgis_reprojection_form)
def setupUi(self, hcmgis_centerline_form): hcmgis_centerline_form.setObjectName("hcmgis_centerline_form") hcmgis_centerline_form.setWindowModality(QtCore.Qt.ApplicationModal) hcmgis_centerline_form.setEnabled(True) hcmgis_centerline_form.resize(352, 264) hcmgis_centerline_form.setMouseTracking(False) self.BtnOKCancel = QtWidgets.QDialogButtonBox(hcmgis_centerline_form) self.BtnOKCancel.setGeometry(QtCore.QRect(190, 230, 156, 31)) self.BtnOKCancel.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.BtnOKCancel.setObjectName("BtnOKCancel") self.LblInput = QtWidgets.QLabel(hcmgis_centerline_form) self.LblInput.setGeometry(QtCore.QRect(10, 7, 331, 16)) self.LblInput.setObjectName("LblInput") self.CboInput = QgsMapLayerComboBox(hcmgis_centerline_form) self.CboInput.setGeometry(QtCore.QRect(10, 24, 331, 21)) self.CboInput.setObjectName("CboInput") self.LblInput_2 = QtWidgets.QLabel(hcmgis_centerline_form) self.LblInput_2.setGeometry(QtCore.QRect(10, 56, 331, 16)) self.LblInput_2.setObjectName("LblInput_2") self.spinBox = QtWidgets.QSpinBox(hcmgis_centerline_form) self.spinBox.setGeometry(QtCore.QRect(10, 73, 331, 22)) self.spinBox.setLayoutDirection(QtCore.Qt.LeftToRight) self.spinBox.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.spinBox.setMinimum(1) self.spinBox.setMaximum(10) self.spinBox.setObjectName("spinBox") self.label = QtWidgets.QLabel(hcmgis_centerline_form) self.label.setGeometry(QtCore.QRect(10, 190, 331, 16)) font = QtGui.QFont() font.setBold(False) font.setItalic(True) font.setWeight(50) font.setKerning(False) self.label.setFont(font) self.label.setObjectName("label") self.chksurround = QtWidgets.QCheckBox(hcmgis_centerline_form) self.chksurround.setGeometry(QtCore.QRect(10, 110, 331, 20)) self.chksurround.setChecked(False) self.chksurround.setObjectName("chksurround") self.lblsurround = QtWidgets.QLabel(hcmgis_centerline_form) self.lblsurround.setGeometry(QtCore.QRect(10, 138, 331, 16)) self.lblsurround.setObjectName("lblsurround") self.distance = QtWidgets.QSpinBox(hcmgis_centerline_form) self.distance.setGeometry(QtCore.QRect(10, 160, 331, 22)) self.distance.setLayoutDirection(QtCore.Qt.LeftToRight) self.distance.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.distance.setMinimum(1) self.distance.setMaximum(1000) self.distance.setProperty("value", 2) self.distance.setObjectName("distance") self.retranslateUi(hcmgis_centerline_form) self.BtnOKCancel.accepted.connect(hcmgis_centerline_form.accept) self.BtnOKCancel.rejected.connect(hcmgis_centerline_form.reject) QtCore.QMetaObject.connectSlotsByName(hcmgis_centerline_form)
def testFilterGeometryType(self): """ test filtering by geometry type """ QgsProject.instance().clear() m = QgsMapLayerComboBox() l1 = QgsVectorLayer( "Point?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'layer 1', "memory") QgsProject.instance().addMapLayer(l1) l2 = QgsVectorLayer( "Polygon?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'layer 2', "memory") QgsProject.instance().addMapLayer(l2) l3 = QgsVectorLayer("None?field=fldtxt:string&field=fldint:integer", 'layer 3', "memory") QgsProject.instance().addMapLayer(l3) l4 = QgsVectorLayer( "LineString?crs=EPSG:3111&field=fldtxt:string&field=fldint:integer", 'layer 4', "memory") QgsProject.instance().addMapLayer(l4) m.setFilters(QgsMapLayerProxyModel.PolygonLayer) self.assertEqual(m.count(), 1) self.assertEqual(m.itemText(0), 'layer 2') m.setFilters(QgsMapLayerProxyModel.PointLayer) self.assertEqual(m.count(), 1) self.assertEqual(m.itemText(0), 'layer 1') m.setFilters(QgsMapLayerProxyModel.LineLayer) self.assertEqual(m.count(), 1) self.assertEqual(m.itemText(0), 'layer 4') m.setFilters(QgsMapLayerProxyModel.NoGeometry) self.assertEqual(m.count(), 1) self.assertEqual(m.itemText(0), 'layer 3') m.setFilters(QgsMapLayerProxyModel.HasGeometry) self.assertEqual(m.count(), 3) self.assertEqual(m.itemText(0), 'layer 1') self.assertEqual(m.itemText(1), 'layer 2') self.assertEqual(m.itemText(2), 'layer 4') m.setFilters(QgsMapLayerProxyModel.VectorLayer) self.assertEqual(m.count(), 4) self.assertEqual(m.itemText(0), 'layer 1') self.assertEqual(m.itemText(1), 'layer 2') self.assertEqual(m.itemText(2), 'layer 3') self.assertEqual(m.itemText(3), 'layer 4') m.setFilters(QgsMapLayerProxyModel.PluginLayer) self.assertEqual(m.count(), 0) m.setFilters(QgsMapLayerProxyModel.RasterLayer) self.assertEqual(m.count(), 0)
def testMeshLayer(self): m = QgsMapLayerComboBox() l1 = create_mesh_layer("l1") QgsProject.instance().addMapLayer(l1) l2 = create_layer('l2') QgsProject.instance().addMapLayer(l2) m.setFilters(QgsMapLayerProxyModel.MeshLayer) self.assertEqual(m.filters(), QgsMapLayerProxyModel.MeshLayer) self.assertEqual(m.count(), 1) self.assertEqual(m.itemText(0), 'l1')
def setupUi(self, windowForm): windowForm.setObjectName(_fromUtf8("windowForm")) windowForm.resize(564, 144) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(windowForm.sizePolicy().hasHeightForWidth()) windowForm.setSizePolicy(sizePolicy) windowForm.setWindowOpacity(1.0) windowForm.setAutoFillBackground(False) self.gridLayout = QtWidgets.QGridLayout(windowForm) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.label_3 = QtWidgets.QLabel(windowForm) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout.addWidget(self.label_3, 0, 1, 1, 1) self.layersComboBox = QgsMapLayerComboBox(windowForm) self.layersComboBox.setObjectName(_fromUtf8("layersComboBox")) self.gridLayout.addWidget(self.layersComboBox, 0, 3, 1, 1) self.label_2 = QtWidgets.QLabel(windowForm) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 2, 1, 1, 1) self.label = QtWidgets.QLabel(windowForm) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 1, 1, 1, 1) self.oldFieldComboBox = QgsFieldComboBox(windowForm) self.oldFieldComboBox.setObjectName(_fromUtf8("oldFieldComboBox")) self.gridLayout.addWidget(self.oldFieldComboBox, 1, 3, 1, 1) self.newFieldLineEdit = QtWidgets.QLineEdit(windowForm) self.newFieldLineEdit.setObjectName(_fromUtf8("newFieldLineEdit")) self.gridLayout.addWidget(self.newFieldLineEdit, 2, 3, 1, 1) self.convertButton = QtWidgets.QPushButton(windowForm) font = QtGui.QFont() font.setPointSize(10) font.setBold(False) font.setWeight(50) self.convertButton.setFont(font) self.convertButton.setDefault(True) self.convertButton.setFlat(False) self.convertButton.setObjectName(_fromUtf8("convertButton")) self.gridLayout.addWidget(self.convertButton, 0, 4, 1, 1) self.cancelButton = QtWidgets.QPushButton(windowForm) font = QtGui.QFont() font.setPointSize(10) font.setBold(False) font.setWeight(50) self.cancelButton.setFont(font) self.cancelButton.setObjectName(_fromUtf8("cancelButton")) self.gridLayout.addWidget(self.cancelButton, 2, 4, 1, 1) self.retranslateUi(windowForm) QtCore.QObject.connect(self.cancelButton, QtCore.SIGNAL(_fromUtf8("clicked()")), windowForm.close) QtCore.QMetaObject.connectSlotsByName(windowForm)