Help needed on building a customized QGIS application

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Help needed on building a customized QGIS application

sonai1978
Hi,

I am a newbie in this environment (python, QGIS). For last few days  i have been trying hard to compile and execute the tutorial of TIM written in python. But i am getting some error r other.

The code is as follows
import sys
import os


from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *
#from F:\Python25\Lib\site-packages\qgis import core as QgsCore
#from F:\Python25\Lib\site-packages\qgis import gui as QgsGui

# Import our GUI
from mainwindow_ui import Ui_MainWindow
# Import our resources (icons)
import resources
# Environment variable QGISHOME must be set to the install directory
# before running this application
qgis_prefix = os.getenv("QGISHOME")
class MainWindow(QMainWindow, Ui_MainWindow):

   def __init__(self):QMainWindow.__init__(self)

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

# Set the title for the app
self.setWindowTitle("BTC C-DAC v 1.0")
# Create the map canvas
self.canvas = QgsMapCanvas()
# Set the background color to light blue something
self.canvas.setCanvasColor(QColor(200,200,255))
self.canvas.enableAntiAliasing(True)
self.canvas.useQImageToRender(False)
self.canvas.show()

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

# Create the actions for our tools and connect each to the appropriate
# method
self.actionAddLayer = QAction(QIcon(":/foss4g2007/mActionAddLayer.png"), "Add Layer", self.frame)

self.connect(self.actionAddLayer, SIGNAL("activated()"), self.addLayer)
self.actionZoomIn = QAction(QIcon(":/foss4g2007/mActionZoomIn.png"),  "Zoom In", self.frame)
self.connect(self.actionZoomIn, SIGNAL("activated()"), self.zoomIn)
self.actionZoomOut = QAction(QIcon(":/foss4g2007/mActionZoomOut.png"),  "Zoom Out", self.frame)
self.connect(self.actionZoomOut, SIGNAL("activated()"), self.zoomOut)
self.actionPan = QAction(QIcon(":/foss4g2007/mActionPan.png"), "Pan", self.frame)
self.connect(self.actionPan, SIGNAL("activated()"), self.pan)
self.actionZoomFull = QAction(QIcon(":/foss4g2007/mActionZoomFullExtent.png"), "Zoom Full Extent", self.frame)
self.connect(self.actionZoomFull, SIGNAL("activated()"),
self.zoomFull)

# Create a toolbar
self.toolbar = self.addToolBar("Map")
# Add the actions to the toolbar
self.toolbar.addAction(self.actionAddLayer)
self.toolbar.addAction(self.actionZoomIn)
self.toolbar.addAction(self.actionZoomOut);
self.toolbar.addAction(self.actionPan);
self.toolbar.addAction(self.actionZoomFull);

# Create the map tools
self.toolPan = QgsMapToolPan(self.canvas)
self.toolZoomIn = QgsMapToolZoom(self.canvas, False) # false = in
self.toolZoomOut = QgsMapToolZoom(self.canvas, True) # true = out
# Set the map tool to zoom in
def zoomIn(self):
   self.canvas.setMapTool(self.toolZoomIn)

# Set the map tool to zoom out
def zoomOut(self):
   self.canvas.setMapTool(self.toolZoomOut)

# Set the map tool to
def pan(self):
   self.canvas.setMapTool(self.toolPan)

# Zoom to full extent of layer
def zoomFull(self):
   self.canvas.zoomFullExtent()
# Add an OGR layer to the map
def addLayer(self):
   file = QFileDialog.getOpenFileName(self, "Open Shapefile", ".", "Shapefiles(*.shp)")

fileInfo = QFileInfo(file)

# Add the layer
layer = QgsVectorLayer(file, fileInfo.fileName(), "ogr")

#if not layer.isValid():
   #return

# Change the color of the layer to gray
symbols = layer.renderer().symbols()
symbol = symbols[0]
symbol.setFillColor(QColor.fromRgb(192,192,192))

# Add layer to the registry
QgsMapLayerRegistry.instance().addMapLayer(layer);

# Set extent to the extent of our layer
self.canvas.setExtent(layer.extent())

# Set up the map canvas layer set
cl = QgsMapCanvasLayer(layer)
layers = [cl]
self.canvas.setLayerSet(layers)

def main(argv):
# create Qt application
   app = QApplication(argv)

# Initialize qgis libraries
QgsApplication.setPrefixPath(qgis_prefix, True)
QgsApplication.initQgis()

# create main window
wnd = MainWindow()

# Move the app window to upper left
wnd.move(100,100)
wnd.show()

# run!
retval = app.exec_()

# exit
QgsApplication.exitQgis()
sys.exit(retval)


if __name__ == "__main__":
   main(sys.argv)


On this i am getting the error,
qgis. core module not found.
qgis.gui module not found.

I have done whatever way possible from my side.

My system environment is as follows:

OS -- Windows 2000
Python 2.5
PyQt 4.4.3.1
QGIS 0.11.0.2

I dont know in which step i should be installing these one after other.
and also where to install.

It will be very kind of you if you can help me out.

Bye
Sonai