コード例 #1
0
 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)
コード例 #2
0
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)
コード例 #3
0
 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)
コード例 #4
0
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)
        
コード例 #5
0
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)