首页 > 解决方案 > Tkinter:在 tkinter 文本 GUI 小部件中显示项目列表

问题描述

我想用正确的值显示每一行和每一列,但是使用 tkinter 小部件我看不到预期的结果。期望是

('1', '2', '3', '4', '5')
('aa', 'bb', 'cc', 'dd', 'ee')
('!@', '%^', '&*', '@#', '@$')
('A', 'B', 'C', 'D', 'E')

但仅('A', 'B', 'C', 'D', 'E')显示在所有行中。请帮我解决问题:

from tkinter import *
top=Tk()
for t in [("1","2","3","4","5"),("aa","bb","cc","dd","ee"),("!@","%^","&*","@#","@$"),("A","B","C","D","E")]: 

for x in range(4):
    for y in range(5):
        w = Text(top, width=15, height=2)
        w.grid(row=x,column=y)
        w.insert(END, t[y])


top.state("zoomed")
top.mainloop()

标签: pythonpython-3.xtkinter

解决方案


你不需要这个循环:

for t in [("1","2","3","4","5"),("aa","bb","cc","dd","ee"),("!@","%^","&*","@#","@$"),("A","B","C","D","E")]: 

反而:

from tkinter import *
top=Tk()
t = [("1","2","3","4","5"),("aa","bb","cc","dd","ee"),("!@","%^","&*","@#","@$"),("A","B","C","D","E")]

for x in range(4):
    for y in range(5):
            w = Text(top, width=15, height=2)
            w.grid(row=x,column=y)
            w.insert(END, t[x][y])

top.state("zoomed")
top.mainloop()

输出

出去


推荐阅读