QGIS 4.0是自 2018 年 QGIS 3.0发布以来的一次主版本更新。最开始的计划是于 2025 年 10 月正式发布,在经历了几次跳票后,QGIS 4.0「Norrköping」最终2026 年 3 月 6 日正式发布。注意下图,标识有“early adopter”。
QGIS 4.0 最大变化就是将UI框架从 Qt5 升级为 Qt6,以应对Qt5商业条款的约束。在QGIS 3.x的较近版本中,已经有同时使用Qt5与Qt6的测试版本发布。这次的升级,从某种程度上是全面迁移至Qt6的一个重要进展。
与上一次大版本升级(从2.0升级到3.0)相比,这次的升级要平滑得多。从安装使用的情况下来,QGIS 3.x 到QGIS 4.0的升级相对来讲对用户变化并不是特别大。QGIS 4.0在性能、安全性等方面做了大量内部改进。
注意:不建议在实际工作中安装使用QGIS 4.0,目前版本适合测试与试用。短期内 QGIS 3.44 仍为 LTR 版本,针对QGIS 4的LTR版本计划在 2026 年 10 月发布。
!!!!使用QGIS 4.0的话强烈建议备份数据。工程文件使用新版本打开保存后不一定在QGIS 3.x中能够打开。
QGIS 4.0 下载方式
QGIS可以通过官方网站进行下载,链接为 https://qgis.org/download/ 。
下图为Windows桌面版的下载页面,除了在线安装包,同时有3.44 LTR与4.0版本的链接提供。
为了方便使用,提供了针对Windows版本的百度网盘下载方式, 链接:
https://pan.baidu.com/s/1TCGLu5p4QD9sVHgvW4_EyQ?pwd=3dix
提取码: 3dix
Linux的发行版本众多,安装使用注意多参考安装说明。其它操作系统未进行实际安装,可对照官网说明进行操作。
使用体验
首先在Window桌面系统进行安装使用。下图为使用QGIS 4.0打开的原来的一个项目文件,可以看到界面与QGIS 3.4几乎没有差别:
对于脚本程序的使用,在Debian 13中参照官方说明进行了安装,使用原来的一个简单测试脚本程序进行测试。从使用的情况来看,需要注意QGIS安装路径的设置,以及对于QT5到Qt6的变更。
在Python中调用QGIS 4的功能,需要声明QGIS的安装位置,在Python中按如下方式,不然会无法引入 qgis 包。这个应该是针对在命令行中运行脚本的设置,直接QGIS中使用Python脚本功能应该不需要,未经过实际测试。
import syssys.path.append('/usr/share/qgis/python/')sys.path.append('/usr/share/qgis/python/plugins')from qgis.core import *
对于使用的Qt5的代码,相应修改为Qt6。后面的代码根据情况进行修改。对于这个简单的示例,实际上涉及 qgis 的并没有修改,反而是针对 Qt6 的修改了一处。
完整的代码如下:
import syssys.path.append('/usr/share/qgis/python/')sys.path.append('/usr/share/qgis/python/plugins')from qgis.core import *from qgis.gui import *from qgis.utils import *from PyQt6.QtCore import *from PyQt6.QtGui import *from qgis.core import Qgisapp = QgsApplication([], True)app.setPrefixPath("/usr", True)app.initQgis()canvas = QgsMapCanvas()canvas.setWindowTitle("PyQGIS Standalone Application Example")# canvas.setCanvasColor(Qt.White)layer = QgsVectorLayer('LineString?crs=epsg:4326', 'MyLine' , "memory")pr = layer.dataProvider()linstr = QgsFeature()geom = QgsGeometry.fromWkt("LINESTRING (1 1, 10 15, 40 35)")linstr.setGeometry(geom)pr.addFeatures([linstr])layer.updateExtents()QgsProject.instance().addMapLayer(layer)canvas.setExtent(layer.extent())canvas.setLayers([layer])canvas.zoomToFullExtent()canvas.freeze(True)canvas.show()canvas.refresh()canvas.freeze(False)canvas.repaint()exitcode = app.exec()QgsApplication.exitQgis()
QGIS 4.0 更新的其他说明
QGIS 4.0是大版本升级,带来性能提升、安全性增强、对新底层技术库的支持、可维护性提高等各方面的好处。本次更新的核心在于底层技术栈的迭代,以彻底解决 Qt5 停止公共支持后的维护风险。为了保障生态平稳过渡,官方采取了分阶段策略:原 3.4x LTR 版本将延长支持,而 QGIS 4.0 在使用完全Qt6 环境的同时,通过保留弃用 API 的方式最大限度降低插件开发者的适配成本。
官网提供迁移指南,并针对Python开发提供的 pyqgis4-checker 兼容性检查工具。
https://github.com/qgis/pyqgis4-checker
具体的功能更新有上百项,可以阅读更新日志进行了解:
https://changelog.qgis.org/en/version/4.0/