我正在尝试加载现有的.qgs项目并获取其中的图层列表。我似乎可以打开该项目,但无法获取图层列表。对于基本的PyQGIS语法,我有些困惑,本食谱未涵盖此特定示例。
from qgis.core import *
from PyQt4.QtCore import QFileInfo
QgsApplication.setPrefixPath(r"C:\OSGeo4W\apps\qgis-ltr", True)
qgs = QgsApplication([], False)
qgs.initQgis()
# Get the project instance
project = QgsProject.instance()
# Open the project
project.read(QFileInfo(
r'C:\path\to\project\project.qgs'))
print project.fileName()
# Get the layers in the project
layers = QgsMapLayerRegistry.instance().mapLayers()
print layers
qgs.exitQgis()
当前,layers
尽管该项目存在并且其中包含许多层,但是这仅返回一个空dict。
我当时在Windows 7x64上使用QGIS 2.16.2。此后尝试在2.18.2上仍然无法正常工作。
—
KJYDavis
我将此问题标记为重新开放,因为链接的问题适用于QGIS,但是该解决方案在独立的Python脚本中不起作用
—
raphael
您是否尝试过:图层= QgsMapLayerRegistry.instance()。mapLayers()。keys()
—
艾伯特
你可以尝试插入
—
马提亚斯·库恩
QgsApplication.processEvents()
之后project.read
?
QGIS 2.18.2
OP和@GermánCarrillo的尝试步骤中,我遇到了同样的问题。OP的版本是什么?