PyQGIS:更改数据定义符号系统的表达式

发布于 2025-01-11 19:18:44 字数 360 浏览 1 评论 0原文

我有一个 QGIS 项目,可以在地图上显示计算结果。有多个矢量图层,每个矢量图层都有超过 100 个计算字段。所有这些层/字段的数据可视化方式都非常相似。我尝试编写一个脚本来复制模板图层,并根据所选字段名称更改符号系统的表达式。

下面是我尝试访问的属性的屏幕截图(如果我要使用 UI 更改它们)。

屏幕截图我想要更改的符号系统属性,我应该使用 UI

如何访问/更改 PyQGIS 中分级符号系统的线宽和线偏移的表达式?

I have a QGIS project that displays calculation results on a map. There are several vector layers, each with >100 calculated fields. The way the data should be visualised is very similar for all these layers/fields. I try to write a script that duplicates a template layer, and changes the expressions for the symbology according to the selected fieldname.

Below is a screenshot of the properties I try to access (if I were to change them using the UI).

screenshot of the symbology properties I want to change, should I use the UI

How do I access/change the expressions of the line width and line offset of a graduated symbology in PyQGIS?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

友欢 2025-01-18 19:18:44

万一其他人遇到这个问题。
我使用解决方法解决了它。我将源图层的样式保存到 qml 文件中,对于重复的图层,我创建了 qml 文件的临时副本,对 qml 文件进行搜索和替换,然后使用以下命令将其应用到新图层
newLayer.loadNamedStyle(pathToTheTempQmlFile)

In case someone else runs into this issue.
I solved it using a workaround. I saved the style of the source layer to a qml-file, for the duplicated layers I create a temporary copy of the qml-file, do a search-and-replace on the qml-file and apply this to the new layer using
newLayer.loadNamedStyle(pathToTheTempQmlFile)

太阳男子 2025-01-18 19:18:44

希望这有帮助:

rule=layer.renderer().rootRule().children()[0]
rule.setFilterExpression('whatever')

请参阅:
QgsRuleBasedRenderer.Rule

Hope this helps:

rule=layer.renderer().rootRule().children()[0]
rule.setFilterExpression('whatever')

see:
QgsRuleBasedRenderer.Rule

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文