Window环境下qgis standalone程序开发环境设定

本文假定:
1. 采用qgis官方发布的安装程序(如QGIS-OSGeo4W-2.18.13-1-Setup-x86.exe安装包)
2. 使用默认的安装位置,即C:\Program Files\QGIS 2.18,如指定到其他目录,请修改对应的设定。
3. 假定示例数据目录为D:\QGIS\数据\

第一:设定环境变量

SET OSGEO4W_ROOT=C:\Program Files\QGIS 2.18
SET QGIS_PREFIX=%OSGEO4W_ROOT%\apps\qgis
SET PATH=%QGIS_PREFIX%\bin;%OSGEO4W_ROOT%\bin
SET PYTHONPATH=%QGIS_PREFIX%\python;%OSGEO4W_ROOT%\apps\Python27
SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python27
SET GDAL_DATA=%OSGEO4W_ROOT%\share\gdal

即在cmd下执行上述命令,若路径不一致,请自行修改。

第二:运行一个样例

# -*- coding: utf-8 -*-
import os,os.path,sys

from qgis.gui import *
from qgis.core import *
from PyQt4 import QtGui

app = QtGui.QApplication([])
QgsApplication.setPrefixPath(os.environ['QGIS_PREFIX'],True)
QgsApplication.initQgis()

main_win = QtGui.QMainWindow()
frame = QtGui.QFrame(main_win)
main_win.setCentralWidget(frame)
grid_layout = QtGui.QGridLayout(frame)

map_canvas=QgsMapCanvas()
grid_layout.addWidget(map_canvas)
map_canvas.setCanvasColor(QtGui.QColor(255,255,255))
layer=QgsVectorLayer(ur'D:\qgis\数据\bou2_4p.shp','border','ogr')

QgsMapLayerRegistry.instance().addMapLayer(layer)
canvas_layer=QgsMapCanvasLayer(layer)
map_canvas.setLayerSet([canvas_layer])
map_canvas.zoomToFullExtent()

main_win.show()
# Need the following statement if running as a script
app.exec_()

可在前述cmd环境下运行python,将此代码粘贴进来运行。

第三,说明:
layer=QgsVectorLayer(ur'D:\qgis\数据\bou2_4p.shp','border','ogr')
这个语句,如目录名称中不含中文,则路径前的u可以移除。当然,也可以这样写:
layer=QgsVectorLayer(u'D:\\qgis\\数据\\bou2_4p.shp','border','ogr')
同时,建议在python下逐行执行来理解代码。

发表评论

邮箱地址不会被公开。 必填项已用*标注