pyqgis 개발 매뉴얼 에 따라 배우고 개발했습니다 .
천둥 밟기 1: 프로젝트가 초기화되면 인쇄 레이아웃 레이아웃을 생성할 수 없습니다.
공식 매뉴얼에 로드된 프로젝트의 예:
# 如果你不在QGIS控制台内运行,首先需要导入qgis和PyQt类,如下所示:
from qgis.core import QgsProject
# 获取项目实例
project = QgsProject.instance()
# 加载另一个项目
project.read('testdata/01_project.qgs')
여기에서 프로젝트를 정상적으로 로드할 수 있습니다. 그러나 레이아웃 레이아웃을 만들고
싶다면 공식 예는 다음과 같습니다.
project = QgsProject.instance()
layout = QgsPrintLayout(project)
layout.initializeDefaults()
하지만 프로젝트 인스턴스를 가져오는 데만 사용하면 project = QgsProject.instance()
py 작업에서 layout = QgsPrintLayout(project)
오류가 발생하고 프롬프트가 표시됩니다.Process finished with exit code -1073741819 (0xC0000005)
이 문제는 또한 새로운 문제로 이어집니다. qgis 클라이언트를 사용하여 레이아웃을 수동으로 생성하고 저장한 다음 py를 사용하여 이동하면 오류가 발생합니다 project.read('testdata/project.qgs')
. .
그렇다면 이 문제를 어떻게 해결해야 할까요?
정답은:
# 初始化项目
qgs = QgsApplication([], False)
qgs.initQgis()
project = QgsProject()
위 3줄의 코드로 초기화 후 layout = QgsPrintLayout(project)
다시 실행해도 문제가 없을 것입니다.
이유: