You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pyQGIS中为字符串添加下划线的实现方法咨询

QGIS Python 生成地图时实现文本下划线的方法
  • 方法1:局部文本标注加下划线(仅部分字符需要下划线时使用)
    QGIS的标注系统支持简易HTML格式化语法,你直接在需要加下划线的字符串外包裹<u>标签即可,示例:
    如果你要给字段name的取值加下划线,标注表达式写为:
    '<u>' || "name" || '</u>'
    直接在Python里构造标注文本也可以用同样的拼接逻辑。

  • 方法2:整层标注全局加下划线(所有标注文本都需要下划线时使用)
    直接通过PyQGIS的QgsTextFormat类配置下划线属性后应用到图层标注设置即可,参考代码如下:

from qgis.core import (QgsPalLayerSettings, QgsTextFormat, 
                       QgsVectorLayerSimpleLabeling, QColor)

# 获取目标矢量图层,这里以当前激活图层为例,你可以替换为自己加载的图层对象
layer = iface.activeLayer()

# 初始化标注配置
pal_settings = QgsPalLayerSettings()
text_format = QgsTextFormat()

# 开启下划线效果,可自定义下划线样式
text_format.setUnderline(True)
# 可选配置:自定义下划线颜色、宽度
# text_format.setUnderlineColor(QColor(0,0,0)) # 黑色下划线
# text_format.setUnderlineWidth(0.3) # 下划线宽度设为0.3mm

# 应用文本格式到标注配置
pal_settings.setFormat(text_format)
# 配置标注来源字段,也可传入表达式
pal_settings.fieldName = "name"

# 把标注配置应用到图层
layer.setLabeling(QgsVectorLayerSimpleLabeling(pal_settings))
# 开启图层标注
layer.setLabelsEnabled(True)
# 刷新画布显示效果
layer.triggerRepaint()

两种方法都可以实现你需要的标注下划线效果,你可以根据自己的需求选择对应方案。

内容的提问来源于stack exchange,提问作者andymt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:57:04