在 Tkinter 标签中使用上标
Using superscript in Tkinter label
我正在用 python Tkinter 制作图形用户界面。现在我需要在结果标签中显示一个多项式函数,这就是我被卡住的地方。为了显示多项式,我必须将幂写为上标。现在我可以使用一个文本框和一个正偏移值来写上标,例如,
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 图形中显示多项式 window,但我不想在这里使用。
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。
我正在用 python Tkinter 制作图形用户界面。现在我需要在结果标签中显示一个多项式函数,这就是我被卡住的地方。为了显示多项式,我必须将幂写为上标。现在我可以使用一个文本框和一个正偏移值来写上标,例如,
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 图形中显示多项式 window,但我不想在这里使用。
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。