当前位置: 首页 > news >正文

2. PyQGIS Windows下开发环境搭建

前言

  • 介绍在Windows搭建pyqgis开发环境
    • ide使用pycharm community
    • QGis安装参考教程1. qgis二次开发环境搭建(qgis-3.28.6+qt5.15)
  • 说明:文章中的示例代码均来自开源项目qgis_py_api_apps

开发环境搭建

QGis说明

  • QGis安装完成后目录如下
    在这里插入图片描述

  • 打开QGIS Desktop,并能显示Python console即可

在这里插入图片描述

PyQGis环境说明

  • 在QGis安装目录中有Python环境,如下图
    在这里插入图片描述

  • 在QGis安装目录的bin中有设置环境变量的脚本,如下图
    在这里插入图片描述

  • 在 Python 中,PYTHONPATH 是一个环境变量,用于指定导入 Python 模块时要搜索的目录列表。

  • python-qgis-ltr-dev.bat用于设置python相关变量

@echo off
call "%~dp0\o4w_env.bat"
@echo off
path %OSGEO4W_ROOT%\apps\qgis-ltr-dev\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis-ltr-dev
set GDAL_FILENAME_IS_UTF8=YES
rem Set VSI cache to be used as buffer, see #6448
set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis-ltr-dev\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis-ltr-dev\python;%PYTHONPATH%
python %*
  • 该脚本会设置QGIS_PREFIX_PATH QT_PLUGIN_PATH PYTHONPATH等变量

  • 脚本中set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis-ltr-dev\python;%PYTHONPATH%将qgis-ltr-dev的python目录加入python模块搜索列表
    在这里插入图片描述

  • 运行脚本之后,可以在python中可以导入QGis的模块并调用函数,如下图
    在这里插入图片描述

from qgis.core import Qgis
print(Qgis.releaseName())

PyCharm Community Edition

PyCharm Community下载地址

配置pycharm

  1. 配置python解释器路径: C:\OSGeo4W\bin\python-qgis-ltr-dev.bat
    在这里插入图片描述

  2. 配置pyuic:.ui文件转换为py文件
    在这里插入图片描述

  3. 配置pyrcc:.qrc文件转换成py文件
    在这里插入图片描述

  4. 配置Qt Designer New:用于新建ui
    在这里插入图片描述

  5. 配置Qt Designer Edit:用于编辑已有ui
    在这里插入图片描述

  • MyDesigner.bat文件命令内容如下
@echo off
rem Root OSGEO4W home dir to the same directory this script exists in
call "%~dp0\bin\o4w_env.bat"%~dp0\apps\Qt5\bin\designer.exe %~1%

HelloPyQGis增加Qt Gui

在这里插入图片描述

  • 增加MainWindow.ui,添加QLabel用于显示QGis ReleaseName
    在这里插入图片描述

在这里插入图片描述

  • Pyuic5将MainWindow.ui转换为MainWindow.py
    在这里插入图片描述
    在这里插入图片描述

  • 添加py文件:mymainwindow.py,代码如下,注意MainWindow继承了QMainWindow和Ui_MainWindow

from PyQt5.QtWidgets import QMainWindow
from ui.MainWindow import Ui_MainWindowfrom qgis.core import Qgisclass MainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MainWindow, self).__init__()self.setupUi(self)self.label.setText(Qgis.version())
  • 修改main.py,代码如下,注意QgsApplication.setPrefixPath需要设置对应的路径
import platformfrom PyQt5.QtCore import Qt
from qgis.core import QgsApplicationfrom mymainwindow import MainWindowif __name__ == '__main__':qgis_installation = ""sys = platform.system()if sys == "Windows":qgis_installation = r"C:/OSGeo4W/apps/qgis-ltr-dev"elif sys == "Linux":qgis_installation = r"/home/t/dev/cpp/apps/qgis"QgsApplication.setPrefixPath(qgis_installation, True)QgsApplication.setAttribute(Qt.AA_EnableHighDpiScaling)app = QgsApplication([], True)app.initQgis()mainWindow = MainWindow()mainWindow.show()app.exec_()app.exitQgis()
  • 如果需要修改MainWindow.ui,可以运行Qt Designer Edit
    在这里插入图片描述

  • 运行即可
    在这里插入图片描述

总结

  • 介绍了Windows下使用Pycharm搭建PyQGis开发环境的过程

相关文章:

  • 【JAVA基础】什么情况下可以直接使用类名.方法名调用方法?
  • 降低诊断消息转发延迟与缓冲区内存占用优化方案
  • 高等数学-微分
  • ganache-ui使用
  • HashMap的基础用法(java)
  • 系统性能分析基本概念(5) : 何时开始性能分析
  • Any类(C++17类型擦除,也称上帝类)
  • 【Java多线程】JUC其他常用组件
  • 系统架构设计(十八):ATAM
  • Linux的启动流程
  • Win11怎样禁止程序开机启动
  • vue3项目动态路由的相关配置踩坑记录
  • 每日算法 -【Swift 算法】Z 字形变换(Zigzag Conversion)详解与实现
  • 第二十章 TIM——基本定时器
  • Javascript 学习
  • leetcode2947. 统计美丽子字符串 I-medium
  • AGI大模型(32):LangChain实现RAG
  • 探秘 C++ 计数器类:从基础实现到高级应用
  • (Git) 稀疏检出(Sparse Checkout) 拉取指定文件
  • SpringCloud (3) 配置中心
  • 做外贸上什么网站/网络推广公司联系方式
  • 凡科快图网站/直通车关键词优化口诀
  • 商场网站建设公司/今天刚刚发生的新闻最新新闻
  • 东莞网页制作免费网站制作/无锡seo优化公司
  • 天津网站建设价位/怎么注册一个网站
  • 用什么网软件做网站/seo是什么?