2 回答
TA贡献1824条经验 获得超6个赞
您可以entry使用以下方式定义值insert:
from tkinter import *
window = Tk()
x = [1, 2, 3, 4]
height = 1
for i in range(height):
for j, val in enumerate(x):
b = Entry(window)
b.insert(0, val)
b.grid(row=i, column=j)
window.mainloop()
结果:
TA贡献1831条经验 获得超10个赞
如果您尝试模拟电子表格,则需要一种方法来寻址每一行中的小部件。一旦掌握了这些,插入、删除和获取数据就变得非常简单。
最简单的方法是将条目小部件的引用存储为列表的列表,以便您可以按行号和列号引用任何单元格。
cells = []
for i in range(height): # Rows
row = []
cells.append(row)
for j in range(width): # Columns
b = Entry(window, text="")
b.grid(row=i, column=j)
row.append(b)
您现在可以用来cells引用任何小部件。例如,第 0 行第 2 列的小部件将为cells[0][2]。
有了这个基本结构,您现在可以轻松编写函数来一次获取或设置整行或整个区域。
例如,以下是创建函数的方法set_row:
def set_row(rownum, data):
row = cells[rownum]
for entry, value in zip(row, data):
entry.delete(0, "end")
entry.insert(0, value)
例如,要使用以下内容设置第一 (0) 行,x您可以执行以下操作:
set_row(0, x)
从电子表格中获取数据也很简单:
def get_data():
rows = []
for rownum in range(height):
row = []
rows.append(row)
for columnnum in range(width):
entry = cells[rownum][columnnum]
row.append(entry.get())
return rows
添加回答
举报