Многострочная всплывающая подсказка для графика pydot

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

node = pydot.Node('abc', style='filled', fillcolor='#CCFF00', fontsize=12)
txt = 'foo' + '\n' + 'test'
node.set_tooltip(txt)

Подсказка, которую я вижу, выглядит как «foo\ntest».

Я буду признателен за любую помощь.

Спасибо, Абхиджит.


person Abhijit Bhattacharya    schedule 21.05.2013    source источник


Ответы (1)


Кажется, что новый символ строки поддерживается для меток и имен (новая строка в метке узла на языке точек (графвиз)), но всплывающие подсказки помещаются непосредственно в результирующий HTML-код, который не воспринимает "\n" как специальный символ.

В качестве альтернативы можно использовать прямые коды символов. (см. Форматирование и Управляющие коды ASCII)

node = pydot.Node('abc', style='filled', fillcolor='#CCFF00', fontsize=12)

# specify HTML Carriage Return (\r) and/or Line Feed (\n) characters directly
txt = 'foo' + '
' + test'

node.set_tooltip(txt)

Или некоторая простая предварительная обработка позволит вам сохранить форму '\n':

node.set_tooltip(txt.replace('\n', '
'))
  • Обратите внимание, что для HTML-подобных меток, используя указанную выше замену -with-entity единственным способом иметь многострочные всплывающие подсказки.
person David Thompson    schedule 12.12.2014
comment
По какой-то причине это не принятый ответ @Abhijit? Работает на меня. - person Chris; 15.06.2018