问题描述
我需要访问二维条目的值,因此我使用列表列表来包含所有小部件。代码如下所示。它生成一个简单的 2x3 数组作为实验。我的代码只能获取第一行的值。有人可以帮忙吗?谢谢!
import tkinter as tk
from tkinter import *
class MyWindow:
def __init__(self,master):
row=[] #list used to store a row
for i in range(2):
for j in range(3):
self.ent=Entry()
row.append(self.ent)
self.ent.grid(row=i,column=j,sticky="nsew",padx=2,pady=2)
self.ent.insert(END,str(i+j))
row_list.append(row)
self.b=Button(text="Print val",command=self.getValue)
self.b.grid(row=21,column=1)
def getValue(self):
for i in range(2):
for j in range(3):
print(row_list[i][j].get())
row_list = [] # list of row
window=Tk()
mywin=MyWindow(window)
window.mainloop()
解决方法
您只能创建一行。您需要将 row
的初始化移动到最外层循环中,以便为 i
for i in range(2):
row=[] #list used to store a row
for j in range(3):
...