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)