python工具-xmind

XMind是基于Python实现,提供了对XMind思维导图进行创建、解析、更新的一站式解决方案

安装 xmind 模块

pip3 install xmind

示例:

创建文件 xmindTest.py

(1)创建空白的xmind

import xmind  #加载包

# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 3、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')

运行

python xmindTest.py

在xmindTest.py同级目录下会生成一个名为test.xmind的文件,打开后为

python工具-xmind

(2)创建一个画布,带有3个节点的xmind

import xmind  #加载包

def design_sheet1(sheet1):
    # ***** 第一个画布 *****
    sheet1.setTitle("first sheet")  # 设置画布名称

    # 获取画布的中心主题,默认创建画布时会新建一个空白中心主题
    root_topic1 = sheet1.getRootTopic()
    root_topic1.setTitle("根")  # 设置主题名称

    # 创建一个子主题,并设置其名称
    sub_topic1 = root_topic1.addSubTopic()
    sub_topic1.setTitle("节点1")

    sub_topic2 = root_topic1.addSubTopic()
    sub_topic2.setTitle("节点2")

    sub_topic3 = root_topic1.addSubTopic()
    sub_topic3.setTitle("节点3")

# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 对第一个画布进行设计完善
design_sheet1(sheet1)
# 3、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')

再次运行该文件后打开的文件为

[En]

The file that opens test.xmind after running it again is

python工具-xmind

创建自由主题

注意:只有中心主题支持创建自由主题

import xmind  #加载包
from xmind.core.const import TOPIC_DETACHED

def design_sheet1(sheet1):
    # ***** 第一个画布 *****
    sheet1.setTitle("first sheet")  # 设置画布名称

    # 获取画布的中心主题,默认创建画布时会新建一个空白中心主题
    root_topic1 = sheet1.getRootTopic()
    root_topic1.setTitle("根")  # 设置主题名称

    # 创建一个子主题,并设置其名称
    sub_topic1 = root_topic1.addSubTopic()
    sub_topic1.setTitle("节点1")

    sub_topic2 = root_topic1.addSubTopic()
    sub_topic2.setTitle("节点2")

    sub_topic3 = root_topic1.addSubTopic()
    sub_topic3.setTitle("节点3")

    # 创建自由主题
    detached_topic1 = root_topic1.addSubTopic(topics_type=TOPIC_DETACHED)
    detached_topic1.setTitle("主题")
    detached_topic1.setPosition(0, 30)

# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 对第一个画布进行设计完善
design_sheet1(sheet1)
# 3、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')

再次运行该文件后打开的文件为

[En]

The file that opens test.xmind after running it again is

python工具-xmind

(3)创建第二个画布的xmind,添加链接、图标、链接文件

import xmind  #加载包
from xmind.core.const import TOPIC_DETACHED
from xmind.core.topic import TopicElement
from xmind.core.markerref import MarkerId
def design_sheet1(sheet1):
    # ***** 第一个画布 *****
    sheet1.setTitle("画布1")  # 设置画布名称

    # 获取画布的中心主题,默认创建画布时会新建一个空白中心主题
    root_topic1 = sheet1.getRootTopic()
    root_topic1.setTitle("根节点")  # 设置主题名称

    # 创建一个子主题,并设置其名称
    sub_topic1 = root_topic1.addSubTopic()
    sub_topic1.setTitle("节点1")

    sub_topic2 = root_topic1.addSubTopic()
    sub_topic2.setTitle("节点2")

    sub_topic3 = root_topic1.addSubTopic()
    sub_topic3.setTitle("节点3")
    # 除了新建子主题,还可以创建自由主题(注意:只有中心主题支持创建自由主题)
    detached_topic1 = root_topic1.addSubTopic(topics_type=TOPIC_DETACHED)
    detached_topic1.setTitle("主题")
    detached_topic1.setPosition(0, 30)

def gen_sheet2(workbook, sheet1):
    # ***** 设计第二个画布 *****
    sheet2 = workbook.createSheet()
    sheet2.setTitle("画布2")

    # 获取画布的中心主题
    root_topic2 = sheet2.getRootTopic()
    root_topic2.setTitle("根节点")

    # 使用另外一种方法创建子主题
    topic1 = TopicElement(ownerWorkbook=workbook)
    # 给子主题添加一个主题间超链接,通过指定目标主题ID即可,这里链接到第一个画布
    topic1.setTopicHyperlink(sheet1.getID())
    topic1.setTitle("跳转到画布1")

    topic2 = TopicElement(ownerWorkbook=workbook)
    topic2.setTitle("URL链接")
    # 给子主题添加一个URL超链接
    topic2.setURLHyperlink("https://www.baidu.com")
    topic3 = TopicElement(ownerWorkbook=workbook)
    # 给子主题添加一个备注(快捷键F4)
    topic3.setPlainNotes("这是做备注的啊")
    topic3.setTitle("节点 \n 备注")

    topic4 = TopicElement(ownerWorkbook=workbook)
    # 给子主题添加一个文件超链接
    topic4.setFileHyperlink("datou.png")
    topic4.setTitle("文件超链接")

    topic1_1 = TopicElement(ownerWorkbook=workbook)
    topic1_1.setTitle("子节点")
    # 给子主题添加一个标签(目前XMind软件仅支持添加一个,快捷键)
    topic1_1.addLabel("一个标签")

    topic1_1_1 = TopicElement(ownerWorkbook=workbook)
    topic1_1_1.setTitle("添加标记")
    # 给子主题添加两个图标
    topic1_1_1.addMarker(MarkerId.starBlue)
    topic1_1_1.addMarker(MarkerId.flagGreen)

    topic2_1 = TopicElement(ownerWorkbook=workbook)
    topic2_1.setTitle("添加评论")
    # 给子主题添加一个批注(评论)
    topic2_1.addComment("这是一个评论!")
    topic2_1.addComment(content="你好啊!", author='baby')

    # 将创建好的子主题添加到其父主题下
    root_topic2.addSubTopic(topic1)
    root_topic2.addSubTopic(topic2)
    root_topic2.addSubTopic(topic3)
    root_topic2.addSubTopic(topic4)
    topic1.addSubTopic(topic1_1)
    topic2.addSubTopic(topic2_1)
    topic1_1.addSubTopic(topic1_1_1)

    # 给中心主题下的每个子主题添加一个优先级图标
    topics = root_topic2.getSubTopics()
    for index, topic in enumerate(topics):
        topic.addMarker("priority-" + str(index + 1))

    # 添加一个主题与主题之间的联系
    sheet2.createRelationship(topic1.getID(), topic2.getID(), "关联")

# 1、如果指定的XMind文件存在,则加载,否则创建一个新的
workbook = xmind.load("my.xmind")
# 2、获取第一个画布(Sheet),默认新建一个XMind文件时,自动创建一个空白的画布
sheet1 = workbook.getPrimarySheet()
# 对第一个画布进行设计完善
design_sheet1(sheet1)
# 3、创建第二个画布
gen_sheet2(workbook, sheet1)
# 4、保存(如果指定path参数,另存为该文件名)
xmind.save(workbook, path='test.xmind')

再次运行该文件后打开的文件为

[En]

The file that opens test.xmind after running it again is

python工具-xmind

Original: https://www.cnblogs.com/baby123/p/15615673.html
Author: 慕尘
Title: python工具-xmind

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7291/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部