Beispiel #1
0
  def __init__(self):
    QMainWindow.__init__(self)
    self.layer = None

    # Required by Qt4 to initialize the UI
    self.setupUi(self)
    #self.ui = Ui_MainWindow()
    #self.ui.setupUi(self)
    qDebug("trying to configure signals" )
    QObject.connect(self.mBtnZoomIn,  SIGNAL("clicked()"),  self.zoomIn)
    QObject.connect(self.mBtnZoomOut,  SIGNAL("clicked()"),  self.zoomOut)
    QObject.connect(self.mBtnAddVector,  SIGNAL("clicked()"),  self.loadVectorLayer)
    QObject.connect(self.mBtnAddRaster,  SIGNAL("clicked()"),  self.loadRasterLayer)
    QObject.connect(self.mBtnSelection,  SIGNAL("clicked()"),  self.setSelectionTool)
    QObject.connect(self.mBtnElevation,  SIGNAL("clicked()"),  self.getVerticesList)

    # Set the title for the app
    self.setWindowTitle("ShapeViewer")

    # Create the map canvas
    self.canvas = QgsMapCanvas()
    self.canvas.useImageToRender(False)
    self.canvas.setCanvasColor(Qt.white)
    self.canvas.enableAntiAliasing(True)
    self.canvas.show()
    
    # Add map tools
    self.selectTool = SelectMapTool(self.canvas)
    
    self.demLayer = None

    # Lay our widgets out in the main window using a 
    # vertical box layout
    self.layout = QVBoxLayout(self.frame)
    self.layout.addWidget(self.canvas)
    def __init__(self):
        QMainWindow.__init__(self)
        self.layer = None
        self.layers = []

        # Required by Qt4 to initialize the UI
        self.setupUi(self)

        QObject.connect(self.mBtnZoomIn, SIGNAL("clicked()"), self.zoomIn)
        QObject.connect(self.mBtnZoomOut, SIGNAL("clicked()"), self.zoomOut)
        QObject.connect(self.mBtnAddVector, SIGNAL("clicked()"),
                        self.loadVectorLayer)
        QObject.connect(self.mBtnAddRaster, SIGNAL("clicked()"),
                        self.loadRasterLayer)
        QObject.connect(self.mBtnSelection, SIGNAL("clicked()"),
                        self.setSelectionTool)
        self.mFieldComboBox.fieldChanged.connect(self.onFieldChanged)

        # Set the title for the app
        self.setWindowTitle("ShapeViewer")

        # Create the map canvas
        self.canvas = QgsMapCanvas()
        self.canvas.useImageToRender(False)
        self.canvas.setCanvasColor(Qt.white)
        self.canvas.enableAntiAliasing(True)
        self.canvas.show()

        # from https://gis.stackexchange.com/questions/141516/adding-legend-to-canvas-in-standalone-pyqgis-application
        self.root = QgsProject.instance().layerTreeRoot()
        self.bridge = QgsLayerTreeMapCanvasBridge(self.root, self.canvas)
        self.model = QgsLayerTreeModel(self.root)
        self.model.setFlag(QgsLayerTreeModel.AllowNodeReorder)
        self.model.setFlag(QgsLayerTreeModel.AllowNodeRename)
        self.model.setFlag(QgsLayerTreeModel.AllowNodeChangeVisibility)
        self.model.setFlag(QgsLayerTreeModel.ShowLegend)
        self.view = QgsLayerTreeView()
        self.view.setModel(self.model)
        self.field = ""

        self.legendQDockWidget.setWidget(self.view)
        self.legendQDockWidget.setFloating(False)
        self.legendQDockWidget.setFeatures(QDockWidget.NoDockWidgetFeatures)
        self.legendQDockWidget.setTitleBarWidget(QWidget())

        # Lay our widgets out in the main window using a
        # vertical box layout
        self.layout = QVBoxLayout(self.canvasFrame)
        self.layout.addWidget(self.canvas)

        # Add map tools
        self.selectTool = SelectMapTool(self.canvas)

        self.demLayer = None

        #number of divisions for the legend
        self.classes = 6

        self.modes = {
            "Equal Interval": QgsGraduatedSymbolRendererV2.EqualInterval,
            "Quantile": QgsGraduatedSymbolRendererV2.Quantile,
            "Natural Breaks (Jenks)": QgsGraduatedSymbolRendererV2.Jenks,
            "Standard Deviation": QgsGraduatedSymbolRendererV2.StdDev,
            "Pretty Breaks": QgsGraduatedSymbolRendererV2.Pretty
        }

        for mode in self.modes.keys():
            self.modeComboBox.addItem(mode)

        self.mode = self.modeComboBox.currentText()

        self.modeComboBox.currentIndexChanged.connect(self.onModeChanged)