我正在学习使用tkinter开发一个应用程序,该应用程序在计算结束时会做出最终报告,将数字放入列中。
from tkinter import *
a = 5
b = 0.223
c = 0.1
a1 = 0.55556
b1 = 1.57
c1 = 785869
a2 = 785698
b2 = 0.55875968547854
c2 = 8696
root=Tk()
output_text = Text(root, width=200, height=30)
output_text.grid(row=10,column=10)
output_text.insert("end-1c", str(a) + ' ' + str(b) + ' ' + str(c)+'\n')
output_text.insert("end-1c", str(a1) + ' ' + str(b1) + ' ' +str(c1)+'\n')
output_text.insert("end-1c", str(a2) + ' ' + str(b2) + ' ' +str(c2)+'\n')
root.mainloop()
我想对齐每一列中的数字,因为每一行都有不同的数字位数,因此输出的井井有条。如何获得此结果?谢谢!
答案 0 :(得分:1)
做到这一点的方式是我们过去使用打字机完成的方式:创建并使用制表位,这些制表位是专门设计用来允许您按列排列数据的。
以下示例每200个像素设置一个制表位:
output_text.configure(tabs=["200"])
...
output_text.insert("end-1c", str(a) + '\t' + str(b) + '\t' + str(c)+'\n')
output_text.insert("end-1c", str(a1) + '\t' + str(b1) + '\t' +str(c1)+'\n')
output_text.insert("end-1c", str(a2) + '\t' + str(b2) + '\t' +str(c2)+'\n')
您可以通过在制表符宽度之后提供以下值之一来指定制表符的对齐方式:"left"
,"right"
,"center"
或"numeric"
。 "numeric"
表示小数点将位于制表符停止位置。
output_text.configure(tabs=["200", "numeric"])
有关tabs选项的规范定义,请参见此处的tcl / tk文档:http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M-tabs
注意:python tkinter文档在标题为Tkinter life Preserver的小节中很好地概述了如何将tcl / tk文档转换为python。