访问使用for循环创建的Entry小部件

时间:2017-07-09 12:56:30

标签: python tkinter

使用以下代码

创建了一系列条目
from tkinter import *
root = Tk()

height = 5
width = 5

delta=0

for i in range(height): #Rows
  for j in range(width): #Columns
    b = Entry(root, text="",width=8)
    b.grid(row=i, column=j)

mainloop()

如何访问每个条目以更新其值(例如,使用StringVar)?

2 个答案:

答案 0 :(得分:4)

您可以为Entry小部件创建列表。

from tkinter import *
root = Tk()

height = 5
width = 5

delta=0

entries = []

for i in range(height): #Rows
  newrow = []
  for j in range(width): #Columns
    b = Entry(root, text="",width=8)
    b.grid(row=i, column=j)
    newrow.append(b)
  entries.append(newrow)

mainloop()

然后,您可以将个别条目作为例如entries[2][4]

修改:要修改条目小部件e的文字,请先使用e.delete(0, END)将其清除,然后使用e.insert(0, "new text")插入新文字。< / p>

Edit2:或者,您可以将StringVars存储在列表列表中而不是小部件中......

答案 1 :(得分:0)

您需要先声明StringVar变量:

myvar = StringVar()

然后在循环中,只要您想要检查变量的内容,请使用get()方法。

x = myvar.get()

现在x将保留该值。您还可以使用if

执行bool测试
if myvar.get():
     print(myvar.get())

在if语句中,程序检查var中是否有数据。如果没有,它将继续前进

再次查看它还应该在按钮中声明StringVar()。像这样:

b = Button(text='clickme', texvariable=myvar)

查看Here了解更多信息