在Python Tkinter listbox中使用Unicode显示下标/上标

2 投票
1 回答
2291 浏览
提问于 2025-04-18 06:20

我需要在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函数。我是快速从一个更复杂的字符串中提取出相关部分的。

撰写回答