簡體   English   中英

訪問使用for循環創建的Entry小部件

[英]Accessing Entry widget created using for loop

使用以下代碼創建了一個條目數組

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)?

您可以為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")插入新文本。

Edit2:或者,您可以將StringVars存儲在列表列表中,而不是小部件中。

您需要首先聲明StringVar變量:

myvar = StringVar()

然后在循環中,每當您要檢查變量的內容時,請使用get()方法。

x = myvar.get()

現在x將保留該值。 您還可以執行一個布爾測試if

if myvar.get():
     print(myvar.get())

在該if語句中,程序檢查var中是否有數據。 如果沒有,它將繼續前進

再次查看它,您還應該在按鈕中聲明StringVar() 像這樣:

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

在這里查看更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM