Tkinter |设置特定列的文本 - py3.5

时间:2018-02-07 14:26:29

标签: python tkinter

我正在创建一个包含tkinter

的表格

我希望每个列按顺序包含文本a,b,c,d,e

| a | b | c | d | e |

我目前的代码如下:

from tkinter import *

root = Tk()

width = 5
defaultRow = ['a', 'b', 'c', 'd', 'e']
for j in range(width):
    for l in defaultRow:
        setText = StringVar()
        b = Entry(root, textvariable=setText, state='readonly')
        setText.set(l)
        b.grid(row=1, column=j)

root.mainloop()

然而,输出只是:

| e | e | e | e | e |

我的代码是不是要循环遍历列表并为l中的下一个项目j设置下一个项目的文字?

1 个答案:

答案 0 :(得分:0)

您已在此处嵌套两个循环,但只想在一个列表上进行迭代。 要实现您的愿望,您只需要调整代码:

root = Tk()
defaultRow = ['a', 'b', 'c', 'd', 'E']
for j in range(len(defaultRow)):
    setText = StringVar()
    b = Entry(root, textvariable=setText, state='readonly')
    setText.set(defaultRow[j])
    b.grid(row=1, column=j)
root.mainloop()

使用嵌套循环,您将

column 1 -> set: "a"
column 1 -> set: "b"
column 1 -> set: "c"
column 1 -> set: "d"
column 1 -> set: "e"
column 2 -> set: "a"
column 2 -> set: "b"
...

导致所有列都有" e"最后