将列表打印到Tkinter文本小部件

4
我有一个字符串列表,想要在一个 Tkinter 文本窗口中打印这些字符串,但是我无法将每个字符串插入到新的一行。
我尝试了以下方法,但没有成功:
ls = [a, b, c, d]

for i in range(len(lst)):
    text.insert(1.0+i lines, ls[i])
2个回答

9

手动添加换行符 ('\n'):

from Tkinter import *  # from tkinter import *

lst = ['a', 'b', 'c', 'd']

root = Tk()
t = Text(root)
for x in lst:
    t.insert(END, x + '\n')
t.pack()
root.mainloop()

顺便提一句,你不需要使用索引来迭代列表。只需要迭代列表即可。同时,不要将list作为变量名,因为它会覆盖内置函数/类型list


您还可以使用单个insert语句以及'\n'.join(lst) - Bryan Oakley

2
你也可以创建一个框架并将标签放置在其中(使用pack或grid):
from tkinter import *
root = Tk()
myFrame = Frame(root).place(x=50, y=100)
myList = ["a", "b", "c"]
for i in myList:
    Label(myFrame, text = "● "+i).pack() #you can use a bullet point emoji.
root.mainloop()

这样做可以让你单独管理列表项,如果你保留了引用(我没有),那么就更容易理解了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接