在Python Tkinter listbox中使用Unicode显示下标/上标
我需要在Python的Tkinter列表框中显示一些带下标和上标的值。
我已经成功地用固定的值显示输出,像这样:
listbox.insert(i, (u"C\u2076"))
这会显示:C6
这是我想要的输出;不过,6的值需要从一个变量中获取。我不知道怎么把变量拼接到u"C\u207"这一部分。如果我尝试用字符串构建,就会出现转义字符,显示成"C\2076",所以这样不行。
还有什么其他方法可以做到这一点呢?
1 个回答
4
我自己搞定了这个问题。上面的评论对我有帮助,但我还是需要一种方法来连接这些unicode字符,因为我在构建一个更大的字符列表。
为了连接unicode字符,我找到了Python内置的unicode函数。
我像上面链接的讨论那样返回了上标:
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)
我可能调用了太多次unicode函数。我是快速从一个更复杂的字符串中提取出相关部分的。