VSCode\PyCharm23.2+PyQGIS(QGIS3.32.1)插件开发配置相关要点

文章讲述了作者在使用VSCode和PyCharm进行PyQGIS插件开发时遇到的问题,重点在于VSCode的配置,特别是路径映射和智能提示,以及PyCharm的成功配置步骤,包括QGIS插件安装、服务配置和调试方法。
摘要由CSDN通过智能技术生成

近期利用VSCode\PyCharm+PyQGIS进行插件开发,现将要点总结一下:

一、VSCode,我没有配置成功,主要是最后一个阶段调试的时候老是不成功。以后会持续关注。但是有几个要点:

1、VSCode+PyQIS开发,智能提示的设置,见下面的文章。网上找不到相关的文章的。

写文章-CSDN创作中心

2、配置文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "port": 5678,
            "host": "localhost",
            "request": "attach",
            "type": "python",
            //"processId": "${command:pickProcess}",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}", // path to your plugin where you are developing
                    "remoteRoot": "C:\\Users\\...\\AppData\\Roaming\\QGIS\\QGIS3\\profiles\\default\\python\\plugins\\your_plugin" // path to where the QGIS plugin folder lives 
                }
            ]
        }
    ]
}

我觉得我应该是pathmappings这里设置的问题。

VSCode要启动一会(大概是加载插件的缘故吧),智能提示才能开始启效果。

二、PyCharm,我配置成功了,要注意一下顺序:

1、QGIS中要安装的插件:plugin reloader、plugin builder

2、QGIS中插件的所在目录,建议把工程直接创建在这里:

C:\Users\用户名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

3、PyCharm 解释程序配置,如果不是lts版本的qgis,配置上有所不同:

 4、服务配置:

 

3、插件安装:

1)添加包源:

 

应用后再移除,然后刷新,就可以了。一定是应用后再移除,然后刷新。 

2)安装包pydevd-pycharm ,注意版本要与刚才服务的版本对应,这里我安装的是232.8660.197

4、编写代码:

可以用QGIS3.32.1安装时自带的QTDesinger来设计。1)先用plugin builder创建,2)然后用QTDesinger来修改界面。

然后编写代码:

    def run(self):
        """Run method that performs all the real work"""

        # Create the dialog with elements (after translation) and keep reference
        # Only create GUI ONCE in callback, so that it will only load when the plugin is started
        if self.first_start == True:
            self.first_start = False
            self.dlg = MyNameDialog()
            self.dlg.button_box.clicked.connect(self.okclick)

self.dlg.button_box.clicked.connect(self.okclick)这句是给界面上的按键添加方法。

方法这样写:

    def okclick(self):
        pydevd_pycharm.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)
        aa = "cccc"
        print("MyName")

        # 获取当前项目
        project = QgsProject.instance()
        layers = project.mapLayers()

        for layer_id, layer in layers.items():
            print(layer.name())

注意前面需要导入包:

import pydevd_pycharm

from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtGui import QIcon
from qgis.core import (
    QgsProject,
    QgsVectorLayer,
    QgsMapLayerType,
)
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)
这两句是需要的,这样才能调试,才能查看变量。

然后打断点,点debug。

 然后在界面上运行插件:

修改了代码后编译后,一定要运行一下reloader(上图后面的框),然后点击你的插件。

特别注意:

如果仅仅是编辑一段代码,那么直接用qt自带的python编辑器就行。这时好像是不能调试的。

最好的做法是,创建一个python脚本,用编辑器打开,在pycharm编写,然后它会同时同步到qgis的编辑器中。在qgis中运行看效果,要看变量,直接print(...),这个过程很折磨人哦。

如果要能调试,就必须要按照上面的步骤编写插件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值