Редактирование отдельных символов в текстовом поле - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь создать легенду диаграммы в текстовом поле для данных, которые разбиты на несколько графиков. Я могу ввести символы соответствующим образом, но мне нужно раскрасить символ юникода, чтобы он соответствовал серии.

Я пытался создать несколько прогонов и редактировать прогоны по отдельности, но, похоже, это не работает (первый запуск в последовательности не добавляется)

def addtextlegend(si, series):
    left = Inches(3.58)
    top = Inches(6.4)
    width = Inches(6)
    height = Inches(0.77)
    shape = prs.slides[si].shapes.add_shape(MSO_SHAPE.RECTANGLE, left, top, width, height)
    fill = shape.fill
    fill.background()
    line = shape.line
    line.fill.background()
    shape.shadow.inherit = False
    colorsequence = 0
    for serie in series:
        p = shape.text_frame.add_paragraph()
        p.font.name = 'Arial'
        p.font.bold = False
        p.font.size = Pt(12)
        p.alignment = PP_ALIGN.CENTER
        run = p.add_run()
        font = run.font
        run.text = u'\u25A0' + '  ' 
        font.color.rgb = brand_colors[colorsequence]
        run.text = serie
        font.color.rgb = RGBColor(0, 0, 0)
        colorsequence += 1

Я ожидал, что часть run.text будет выполнена дважды, сначала добавив символ Юникод, затем добавив имя серии в отдельных циклах. (Хотя они должны быть на одной линии). Вместо этого добавляется только название серии.

...