我要一长串的检查按钮和条目。我使用for
循环创建它们,但是这不允许我为对象指定唯一的名称(例如textbox1、textbox2等),因为您不能执行"foo" + char(i) = whatever
。所以我创建了两个列表,一个用于复选按钮,一个用于条目。但是你如何访问列表中的对象呢?你知道吗
slot1list_check = []
slot1list_text = []
for x in range (1,21):
label = "S1Ch. " + str(x)
chk = Checkbutton(app, text=label).grid(row=(x+1), column=0)
txt = Entry(app, text=label).grid(row=(x+1), column=1)
slot1list_check.append(chk)
slot1list_text.append(txt)
slot1list_text[x-1].insert(0,"whatever in this field")
我得到以下错误:AttributeError:'NoneType'对象没有属性'insert',引用了上面代码中的最后一行。你知道吗
如何访问列表中的对象?有没有一种更聪明/更好的方法来创建大量对象并为它们指定顺序名称?你知道吗
.grid()
方法在修改小部件时返回None
。它不返回CheckButton()
或Entry()
元素。你知道吗分别调用
.grid()
:注意,我使用
chk
和txt
引用将.grid()
调用移到了新行。你知道吗您可以使用
-1
引用列表中的最后一个元素,因为负索引从列表末尾向后计数。在本例中,已经有了对同一对象的txt
引用,因此可以直接使用它。你知道吗就我个人而言,我只会在需要的地方使用
range(20)
和+ 1
:相关问题 更多 >
编程相关推荐