import os
|
import sys
|
from qgis.gui import *
|
from qgis.core import *
|
from qgis.PyQt.QtCore import *
|
from qgis.PyQt.QtWidgets import *
|
|
|
class MapViewer(QMainWindow):
|
def __init__(self, shapefile):
|
QMainWindow.__init__(self)
|
self.setWindowTitle("Map Viewer")
|
|
canvas = QgsMapCanvas()
|
canvas.setCanvasColor(Qt.white)
|
canvas.show()
|
|
project = QgsProject.instance()
|
project.read(r'E:/data/1.Natural_Earth/Test.qgz')
|
|
layer = QgsVectorLayer(shapefile, "layer1", "ogr")
|
if not layer.isValid():
|
raise IOError("Invalid shapefile")
|
|
# project.addMapLayer(layer)
|
# canvas.setExtent(layer.extent())
|
# canvas.setLayers([layer])
|
layers = project.mapLayers().values()
|
canvas.setLayers(layers)
|
|
layout = QVBoxLayout()
|
layout.addWidget(canvas)
|
|
contents = QWidget()
|
contents.setLayout(layout)
|
self.setCentralWidget(contents)
|
|
|
if __name__ == "__main__":
|
QgsApplication.setPrefixPath("qgis", True)
|
qgs = QgsApplication([], True)
|
qgs.initQgis()
|
|
viewer = MapViewer("./data/Counties.shp")
|
viewer.show()
|
exitCode = qgs.exec()
|
|
qgs.exitQgis()
|