PyQgis踩雷合集:打印布局layout无法通过QgsPrintLayout创建。(持续更新)

本人是照着pyqgis开发手册来学习开发的。

踩雷1:project项目初始化时,会出现打印布局layout无法创建的情况。

官方手册里的加载项目示例:

# 如果你不在QGIS控制台内运行,首先需要导入qgis和PyQt类,如下所示:
from qgis.core import QgsProject
# 获取项目实例
project = QgsProject.instance()
# 加载另一个项目
project.read('testdata/01_project.qgs')

这里可以正常加载project。
但如我我想创建一个layout布局时,官方示例是:

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()

使用以上三行代码初始化后,再运行layout = QgsPrintLayout(project)就没问题了。
原因:在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值