首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本添加到组中不适用于svgwrite

将文本添加到组中不适用于svgwrite
EN

Stack Overflow用户
提问于 2020-07-09 10:06:53
回答 1查看 121关注 0票数 0

我正在编写一些基本脚本,以便使用python的svgwrite创建基本图表。我已经成功地使用其他项目创建了组,例如圆、路径和线。但是,在将几个文本元素添加到一个组中时,当我使用Inkscape打开svg图形时,这些元素不能正确地显示在一个组中。文本显示得很好,但没有分组。

这是我的代码片段:

代码语言:javascript
复制
        # Create group for constellation names
        const_names = dwg.add(dwg.g(id='constellation_names', 
                                    stroke='none',
                                    fill=config.constellation_name_font.color.get_hex_rgb(),
                                    fill_opacity=config.constellation_name_font.color.get_float_alpha(),
                                    font_size=config.constellation_name_font.size*pt,
                                    font_family=config.constellation_name_font.font_family))
        
        log.warning("Constellation name groups are not working!")
        
        if config.constellation_name_enable:
            w, h = constellation.get_mean_position()
            # Add every text item into the group
            const_names.add(dwg.text(constellation.name,
                                     insert=(w*pt, h*pt),
                                     )
        )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-17 01:27:23

事实证明这是一个类型8的错误(我在代码上有一个bug )。这就是我的代码最终是什么样子的。所有文本实例都分组在一个组中。

代码语言:javascript
复制
def _add_constellation_names(dwg, constellations, config):
    const_names = dwg.add(dwg.g(id='constellation_names', 
                                stroke='none',
                                fill=config.constellation_name_font.color.get_hex_rgb(),
                                fill_opacity=config.constellation_name_font.color.get_float_alpha(),
                                font_size=config.constellation_name_font.size*pt,
                                font_family=config.constellation_name_font.font_family))
    
    for constellation in constellations:
        kwargs = {}
        if constellation.custom_color != None:
            kwargs["fill"] = constellation.custom_color.get_hex_rgb()
            kwargs["fill_opacity"] = constellation.custom_color.get_float_alpha()
        
        w, h = constellation.get_mean_position()
        const_names.add(dwg.text(constellation.get_display_name(),
                                 insert=(w*pt, h*pt),
                                 text_anchor="middle",
                                 **kwargs,
                                 )
                        )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62806287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档