QGIS二次开发:构造QgsMapCanvas类对象导致闪退问题解决

文章描述了一个使用QGIS3.26.2开发的GIS程序在其他机器上运行时因找不到srs6.db文件导致崩溃的问题。问题的根本原因是QGIS应用未能正确找到资源目录。解决方案是通过添加一个writePathToQGisBulidFile函数,在启动QGIS应用之前创建必要的资源目录和文件,确保srs6.db的存在,并将路径写入qgisbuildpath.txt文件,以避免程序因找不到路径而终止。

1.现象描述

利用QGIS 3.26.2编写的GIS程序,在本人开发机器能正常运行,但是放到其它机器,起来一会儿后闪退,程序退出。

2.开发环境说明

本人用到的开发环境说明如下:

  • QGIS 3.26.2

  • Qt 5.14.1

  • Visual Studio 2019

3.问题原因

在执行如下代码:

  m_pMapCanvas = new QgsMapCanvas(this);

会崩溃,从而导致程序退出。崩溃原因为:构造QgsMapCanvas 对象时,会调用QGIS底层的src\core\qgsapplication.cpp中的如下函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值