I am very new to GIS, QGIS and Python. I am using QGIS 2.0 and I would like to develop a QGIS plugin that would display the raster layers of the main window in order to allow for some specific interaction. I have a very hard time getting this to work! I generated the skeleton of my plugin through plugin builder, and changed the [moduleName]2dialog.py file to try to display the main window layers.
I have two questions :
- Is it possible to get the layers?
- Can I draw it inside a GqsMapCanvas inside my plugin GUI, or do I need another object?
This is the code I have for now, which generates an error :
from PyQt4 import QtCore, QtGui
from qgis import core, gui, utils
from qgis.gui import QgsMapCanvasLayer
mc = iface.mapCanvas()
layers = mc.mapRenderer().layerSet()
if not layers:
self.ui.displayFileNameTextEdit.setText("No layer to display.")
else:
for layer in layers: #layer is one id
self.ui.qgsMapCanvas.setExtent(layer.extent())
self.ui.qgsMapCanvas.setLayerSet( [ QgsMapCanvasLayer(layer) ] )
self.ui.qgsMapCanvas.refresh()