在Tkinter标签

时间:2016-03-23 07:26:59

标签: python tkinter superscript

我正在使用python Tkinter创建一个gui。现在我需要在结果标签中显示一个多项式函数,这就是我被卡住的地方。为了显示多项式,我必须将幂写为上标。现在我可以使用文本框和正偏移值来编写上标,如

root=Tk()
l=Text(root)
l.tag_configure("s", offset=5)
l.insert(INSERT,"X","","2","s")
l.grid(row=0)
root.mainloop()

但我无法弄清楚如何为n阶多项式做这件事。我在列表中有系数,我想让多项式将其插入到Label / Text小部件中。有一个简单的方法吗? 另外我知道我可以使用matplotlib的乳胶文本渲染在matplotlib图形窗口中显示多项式,但我不想在这里。

1 个答案:

答案 0 :(得分:0)

import Tkinter as tk
coeff = [-5,4,-3,2,1]

root=tk.Tk()
l=tk.Text(root)
l.tag_configure("s", offset=5)

#insert first coefficient manually
l.insert("insert", str(coeff[0]))
l.insert("insert","x","",str(len(coeff)-1),"s")

#use enumerate to track indexes
for idx, item in enumerate(coeff[1:],2):
    #put a plus if number is positive. If not minus sign will come from number itself
    if item >= 0:
        l.insert("insert","+","") #insert sign
    l.insert("insert", str(item)) #insert coefficient
    #insert variable if not last item.    
    if item != coeff[-1]:
        l.insert("insert","x","",str(len(coeff)-idx),"s") #insert variable and its power

l.grid(row=0)
root.mainloop()

如果您想更改系数的大小,可以使用tag_add and tag_configure