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的文件,打開后為

(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')

再次運行后打開test.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')

再次運行后打開test.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')

再次運行后打開test.xmind的文件為

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM