gpt4 book ai didi

python - 有没有办法修复 Tkinter 中列表框中的列宽?

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:15 25 4
gpt4 key购买 nike

我想在列表框中显示一些项目。有些非常短,有些非常大(10-15 个字符)。如下图所示,

1. facebook  gowtham95****@gmail.com

2. gmail someone@gmail.com

3. stackoverflow stackusername

我想像……一样整齐地展示它们

1. facebook    gowtham95****@gmail.com

2. gmail someone@gmail.com

3. stack.. stackusername

是否有办法修复 Tkinter 中列表框中的列宽?

还有一件事,我想在上面将其标记为 id、域名和用户名。我不想使用标签。我想在列表框本身中提及它,有吗?

最佳答案

您可以使用string formating - 但这需要一些monospaced font ,并且您必须找到列中最长的字符串。

import Tkinter as tk

master = tk.Tk()
master.geometry('600x100')

lb = tk.Listbox(master, font='monospace') # some monospaced font
lb.pack(fill=tk.BOTH, expand=1)

#---

data = [
('1', 'facebook', 'gowtham95****@gmail.com'),
('2', 'gmail', 'someone@gmail.com'),
('3', 'stackoverflow', 'stackusername')
]

longest_1 = max( len(x[1]) for x in data )
longest_2 = max( len(x[2]) for x in data )

for x in data:
line = '%s | %*s | %*s |' % (x[0], -longest_1, x[1], -longest_2, x[2])
lb.insert(tk.END, line)

#---

tk.mainloop()

enter image description here

关于python - 有没有办法修复 Tkinter 中列表框中的列宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com