问题标签 [pyqgis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - pyinstaller 找不到现有的 PyQt5 插件目录
我使用 qgis 编写 python 脚本来显示谷歌地图基础层,并设置环境变量如下:
使用 vs 2019 运行脚本时,它成功显示了地图,但是当我使用 pyinstaller 转换为 exe 文件时,它显示错误:找不到现有的 PyQt5 插件目录这是 pyinstaller 跟踪:
plugins - 如何使用qgis pugin将sql查询的结果显示为属性表?
我正在尝试创建一个自定义 QGIS 插件,该插件从 SQL 文件中读取查询并执行它们。我的脚本已经运行,查询正在执行,并且在数据库中创建了所需的表。但我需要创建的结果表在QGIS中以属性表的形式显示。
请让我知道,如何将我的查询结果显示为属性表 QGIS。提前致谢。
python - 为什么 Python 的 None 值似乎没有触发我的条件?
我在 QGIS 中运行了一个 Python 脚本。它看起来像这样:
问题是脚本处理了大约 57,000 行数据后,它会吐出这个错误:
我不明白这个错误是如何达到的。我的两个引用该None
值的条件不应该足以跳过任何空地理值吗?
完全披露:我通常不是 Python 人。如果我遗漏了一些明显的东西,请善待。
copy - 使用 addFeatures 在 PyQGIS 中将特征从一层复制到另一层
我正在为 QGIS 3.8 编写一个插件
我有两层,
- drop_layer 和
- 光纤电缆。
我想从 drop_layer 复制所有功能并附加到光纤电缆层。
我使用一个函数来使用一些处理工具创建 drop_layer。然后我使用以下功能“merge_to_original_Fibre_layer”将此“drop_layer”的所有功能复制到另一个现有层“Fibre cable”。所有这些功能都是主类的一部分。
当我运行代码时,“drop_layer”的所有功能都被复制到“Fibre Cable”层。当我打开“光纤电缆”层的属性表时,我看到了这一点。即使我能够将地图缩放到这些功能。
问题是我在地图上看不到这些新增功能的几何形状。我做错了什么?
python - 为什么我不能在独立应用程序中从 Postgresql 加载 QgsVectorLayer 但可以在 QGIS Python 控制台中加载?
我正在使用 PyQt5 和 QGIS 编写一个独立的应用程序。我想出了如何找到 QGIS Python 库,我用 制作了一些 GUI QgsMapCanvas
,我向它加载了一个测试 shapefile。一切正常。但是当我尝试从 Postgresql 加载矢量图层时,什么也没发生。layer.isValid()
函数返回False
,但False
根本无助于解决问题。我搜索了一种获取错误的方法,但没有得到任何东西。当我将相同的代码放入 QGIS 中的 Python 控制台时,一切正常。图层已加载并添加到地图画布中。我什至不知道该做什么以及在哪里寻找解决方案。
这是代码中不起作用的部分:
它显示一个带有空地图画布的窗口并将invalid layer
消息打印到终端。我尝试了不同的论点source.setDataSource
。我试过'public'
了,只是''
代替它。我尝试了 3 个参数和 5 个参数。我尝试source.uri
了False
有无。我尝试了一切。不要忘记我将 shapefile 加载到地图画布中。这意味着 PyQGIS 可以工作。
问题是什么?如何解决?当发生这样的事情时,我怎么能得到加载错误?
python - QGIS Python忽略HandleBadLAyers
我正在使用 Python 代码打开 QGIS 项目。这个想法是对过去使用的文件进行清单。一些源文件已在网络上重新定位。当您打开一个项目时,您会看到一个处理不可用图层的屏幕。当您使用 Python 打开项目时,有什么方法可以避免出现该屏幕吗?
我发现有这样的类:https ://qgis.org/pyqgis/3.8/core/QgsProjectBadLayerHandler.html?highlight=handlebadlayers
到目前为止我的代码
plugins - 在 QGIS 插件生成器插件中添加可检查的组合框
我正在用 python 开发一个 QGIS 插件,并在显示我的 GUI 时遇到了障碍。我正在使用插件构建器框架来开发我的插件,但我无法在我的 GUI 的滚动区域中显示一个可检查的组合框。具有核心功能的代码如下。
综上所述,run函数是插件加载时调用的主要函数。self.dlg 是实际 pyqt python 用户界面的实例。这是在 EarthingToolDialog 类的帮助下呈现的。可检查的组合框及其功能自包含在 CheckableComboBox 类中。
加载插件但复选框在组合框中不可见时,run 函数执行没有任何错误。在 GUI 的滚动区域上只能看到一个带有项目列表的普通组合框(只是标准的下拉组合框),而不是所需的可检查组合框。CheckableComboBox 类取自https://morioh.com/p/d1e70112347c,它在演示代码中运行良好。
我知道这是一个非常具体的问题,如果有人能弄清楚问题可能是什么,那就太好了。提前致谢!
python - 在 python 代码(子进程)中使用不同的 conda 环境运行 python 代码
我有以下问题,我还没有找到一个好的解决方案。我已经在GIS StackExchange 网络中提出了这个问题,但是,似乎以前没有人遇到过此类问题,因为问题更多是编码问题,stackoverflow 似乎是更好的提问场所。
本质上,我有一个 python 环境,我想用 PyTorch 处理图像。问题是,虽然我可以将 PyTorch 及其依赖项安装到这个 python 环境中,但这可能不是最好的主意,因为它可能会给主程序 ( QGIS ) 带来问题,甚至将其变砖。因此,我想将两种环境(PyTorch 和我的处理库的原始环境和新环境)分开。
也就是说,我目前只看到两个解决此问题的选项:
第一个选项是这个过程:QGIS Plugin --> Saves image, RoI and labels to disk;PyTorch 插件(在子进程中运行)--> 从磁盘加载图像、RoI 和标签--> 处理所有内容--> 再次将结果保存到磁盘;QGIS 插件 --> 加载结果
然而,这对我来说看起来非常复杂和缓慢。
第二种选择是将所有 python 依赖项安装到 QGIS 环境中。但是,我不确定这是否会使 QGIS 变砖,而且,即使现在不能,将来也可能。
你会如何建议我实现我的插件?
python - 在 Qgis GIS 软件中使用 Python 控制台插入多边形时出错
我刚开始在 Qgis GIS 软件中使用 Python Console。我想使用 Qgis 中存在的 Python 控制台添加一个多边形。我试图结合从几个文档中找到的代码。feat.setGeometry(QgsGeometry.fromPolygonXY([points]) 上面这行代码说“表达式不能包含赋值,也许你的意思是“==”警告来了。akcakent表可以在Qgis中编辑。错误在哪里我写的代码?你能帮我吗?