既存の.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
プロジェクトが存在し、その中に多くのレイヤーがあるにもかかわらず、これは空の辞書を返します。
当時、Windows 7x64でQGIS 2.16.2を使用していました。それ以来2.18.2を試してみましたが、それでも機能しませんでした。
—
KJYDavis 16
リンクされた質問はQGIS内に適用されるため、この質問に再び
—
開くよう
お試しください:layers = QgsMapLayerRegistry.instance()。mapLayers()。keys()
—
Albert
QgsApplication.processEvents()
直後挿入してみproject.read
ませんか?
QGIS 2.18.2
OPと@GermánCarrilloの試行されたステップで同じ問題を抱えています。OPのバージョンは何ですか?