отображение нижнего индекса / верхнего индекса в списке python tkinter с unicode

Мне нужно отобразить некоторые значения с нижними/верхними индексами в списке Tkinter в Python.

Мне удалось вывести вывод для отображения с жестко закодированными значениями, например:

 listbox.insert(i, (u"C\u2076"))

Отображается: C6

Это желаемый результат, который я хочу; однако значение 6 должно быть взято из переменной. Я не могу понять, как объединить переменную с частью u"C\u207". Если я попытаюсь создать его с помощью строки, он будет иметь escape-символ и отображаться как «C\2076», так что это не сработает.

Как еще я могу это сделать?


person Lucas    schedule 12.05.2014    source источник
comment
Это может помочь: stackoverflow.com/a/13875688/3275008   -  person atlasologist    schedule 13.05.2014


Ответы (1)


Мне удалось разобраться в этом для себя. Комментарий выше был полезен, но мне по-прежнему нужен был способ объединения символов Юникода, потому что я создавал гораздо больший список символов.

Чтобы объединить символы юникода, я нашел питонов, встроенных в функцию юникода.

Я вернул верхний индекс, как показано в приведенной выше связанной теме:

def get_superscript_unicode(n):
    codes = {
        1 : u"\u00B9",
        2 : u"\u00B2",
        3 : u"\u00B3",
        4 : u"\u2074",
        5 : u"\u2075",
        6 : u"\u2076",
        7 : u"\u2077"
    }
    return unicode(codes[n])

Чтобы объединить несколько возвратов Unicode, я сделал что-то похожее на это:

for item in list:
    s += unicode(get_superscript_unicode(n)) + unicode(other text)
return unicode(s)

У меня, вероятно, слишком много вызовов юникода. Я как бы быстро вынул соответствующие части строящейся гораздо более сложной струны.

person Lucas    schedule 13.05.2014