def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_BufferByPercentage() self.ui.setupUi(self) self.ui.buttonBox.rejected.connect(self.reject) self.ui.buttonBox.accepted.connect(self.accept) self.ui.rdoBuffer.setChecked(True) self.ui.btnBrowse.clicked.connect(self.browse) self.ui.inputLayer.currentIndexChanged.connect(self.populateAttributes)
class BufferByPercentageDialog(QtGui.QDialog): def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_BufferByPercentage() self.ui.setupUi(self) self.ui.buttonBox.rejected.connect(self.reject) self.ui.buttonBox.accepted.connect(self.accept) self.ui.rdoBuffer.setChecked(True) self.ui.btnBrowse.clicked.connect(self.browse) self.ui.inputLayer.currentIndexChanged.connect(self.populateAttributes) def populateLayers(self): self.ui.inputLayer.clear() mapLayers = qgis.QgsMapLayerRegistry.instance().mapLayers() polygonLayers = [ mapLayers[layer] for layer in mapLayers if mapLayers[layer].type() == qgis.QgsMapLayer.VectorLayer and mapLayers[layer].geometryType() == qgis.QGis.Polygon ] for layer in polygonLayers: self.ui.inputLayer.addItem(layer.name(), layer) def populateAttributes(self): self.ui.dropdownPercentageField.clear() layerName = self.ui.inputLayer.currentText() if layerName != "": layer = qgis.QgsMapLayerRegistry.instance().mapLayersByName( layerName)[0] fieldList = [ field.name() for field in list(layer.dataProvider().fields()) if field.type() in (QtCore.QVariant.Double, QtCore.QVariant.Int) ] self.ui.dropdownPercentageField.addItems(fieldList) def browse(self): fileName = QtGui.QFileDialog.getSaveFileName( self, 'Open file', "", "Shapefile (*.shp);;All files (*)") fileName = os.path.splitext(str(fileName))[0] + '.shp' layername = os.path.splitext(os.path.basename(str(fileName)))[0] if (layername == '.shp'): return self.ui.outputLayer.setText(fileName)
class BufferByPercentageDialog(QtGui.QDialog): def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_BufferByPercentage() self.ui.setupUi(self) self.ui.buttonBox.rejected.connect(self.reject) self.ui.buttonBox.accepted.connect(self.accept) #self.ui.rdoBuffer.setChecked(True) self.ui.btnBrowse.clicked.connect(self.browse) self.ui.inputLayer.currentIndexChanged.connect(self.populateAttributes) def populateLayers( self ): myListA = [] self.ui.inputLayer.clear() #get all the layer names(polygon) myListA = ftu.getLayerNames( [ qgis.QGis.Polygon ] ) print "Polygons",qgis.QGis.Polygon print "list",myListA self.ui.inputLayer.addItems( myListA ) def populateAttributes( self ): self.ui.dropdownPercentageField.clear()#clean the current field layerName = self.ui.inputLayer.currentText()#get the layer name if layerName != "": layer = qgis.QgsMapLayerRegistry.instance().mapLayersByName(layerName)[0] #fieldList, save the selected layer attributes into list. fieldList = [field.name() for field in list(layer.dataProvider().fields())] # if field.type() in (QtCore.QVariant.Double, QtCore.QVariant.Int) self.ui.dropdownPercentageField.addItems(fieldList) def browse( self ): fileName = QtGui.QFileDialog.getSaveFileName(self, 'Open file', "", "Shapefile (*.shp);;All files (*)") fileName = os.path.splitext(str(fileName))[0]+'.shp' layername = os.path.splitext(os.path.basename(str(fileName)))[0] if (layername=='.shp'): return self.ui.outputLayer.setText(fileName)
class BufferByPercentageDialog(QtGui.QDialog): def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_BufferByPercentage() self.ui.setupUi(self) self.ui.buttonBox.rejected.connect(self.reject) self.ui.buttonBox.accepted.connect(self.accept) self.ui.rdoBuffer.setChecked(True) self.ui.btnBrowse.clicked.connect(self.browse) self.ui.inputLayer.currentIndexChanged.connect(self.populateAttributes) def populateLayers( self ): self.ui.inputLayer.clear() mapLayers = qgis.QgsMapLayerRegistry.instance().mapLayers() polygonLayers = [mapLayers[layer] for layer in mapLayers if mapLayers[layer].type() == qgis.QgsMapLayer.VectorLayer and mapLayers[layer].geometryType() == qgis.QGis.Polygon] for layer in polygonLayers: self.ui.inputLayer.addItem( layer.name(), layer ) def populateAttributes( self ): self.ui.dropdownPercentageField.clear() layerName = self.ui.inputLayer.currentText() if layerName != "": layer = qgis.QgsMapLayerRegistry.instance().mapLayersByName(layerName)[0] fieldList = [field.name() for field in list(layer.dataProvider().fields()) if field.type() in (QtCore.QVariant.Double, QtCore.QVariant.Int)] self.ui.dropdownPercentageField.addItems(fieldList) def browse( self ): fileName = QtGui.QFileDialog.getSaveFileName(self, 'Open file', "", "Shapefile (*.shp);;All files (*)") fileName = os.path.splitext(str(fileName))[0]+'.shp' layername = os.path.splitext(os.path.basename(str(fileName)))[0] if (layername=='.shp'): return self.ui.outputLayer.setText(fileName)