tkinter 从列表中显示值到输入框

0 投票
1 回答
1898 浏览
提问于 2025-04-29 12:10

我正在用tkinter制作一个图形界面,里面有一个由输入框组成的数组。在数组的某些列中,我输入了一些值,然后读取这些值,为每一列建立一个列表。还有一些列是只读的,没有值,我想把结果从这些列表导出到这些只读列中。但是我找不到办法让程序显示结果。

需要注意的是,我有两个函数,一个是用来创建这些输入框的,另一个是用来进行计算的。

为了创建一个空的结果列,我这样做:

self.akt_b =[]
    for i in range(12):
        akt_b =StringVar()
        self.akt_b =Entry(self, textvariable =akt_b, width =10,
                                  state='readonly', readonlybackground ="white")
        self.akt_b.grid(row =7+i, column =3)

这样在视觉上达到了我想要的效果。然后我计算了一个包含12个浮点数的列表list_b,我想把它显示在self.akt_b中。我尝试了:

for i in range(12):
        self.akt_b[i+1].delete(0, END)
        self.akt_b[(i+1)].set("round(list_b[(i+1)], 2)")

但是没有成功。我也试过用.insert,但也没用,我尝试了akt_b,结果还是不行。

我该怎么办呢?

暂无标签

1 个回答

2

在看到Kevin的回答后,我找到了问题的解决办法,原来我少了一个.append的参数。

如果有人感兴趣的话,这里是解决方案:

self.akt_b, self.entries =[], []
    for i in range(12):
        akt_b =StringVar()
        entries =Entry(self, textvariable =akt_b, width =10,
                                  state='readonly', readonlybackground ="white")
        entries.grid(row =7+i, column =3)
        self.akt_b.append(akt_b)

所以现在

for i in range(12):
      self.akt_b[i].set(round(list_b[i], 2))

运行得非常好。

有时候大脑就是会卡壳...

撰写回答