【发布时间】:2017-10-19 09:27:21
【问题描述】:
我是一个“新手”python 用户。
我有一个使用 tkinter 的列表框,我想格式化列表条目以使它们对齐,并且我有以下内容:
from Tkinter import *
master = Tk()
info=[ ['sue', 1, 'Argentina', 'Bsc'],
['peggy-sue', 17, 'U.K.', 'Bsc'],
['susie', 234, 'France', 'BA']
]
listbox = Listbox(master, width=60)
listbox.pack()
listbox.insert(END, "{:<15s} {:>5s} {:<25s} {:<5s}".format("Name","id","Nationality","Qual") )
for i in range(len(info)):
item = "{:<15s} {:>5d} {:<25s} {:<5s}".format(info[i][0],info[i][1],info[i][2],info[i][3])
print item # Gives nicely formatted lines
listbox.insert(END, item) #Lines are not nicely formatted in listbox
mainloop()
谁能解释为什么列表框条目的格式不像打印行那样好?
我知道多列列表框(例如Display Listbox with columns using Tkinter?),所以我不需要解决方案,我对为什么事情没有像我预期的那样工作很感兴趣。
谢谢
【问题讨论】:
-
您需要根据每个元素的长度更改元素之间的空格数。我会看看我能不能让它工作,但这应该很容易完成。
标签: python tkinter listbox string-formatting