Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问列表中的Tkinter小部件时出现问题_Python_Tkinter - Fatal编程技术网

Python 访问列表中的Tkinter小部件时出现问题

Python 访问列表中的Tkinter小部件时出现问题,python,tkinter,Python,Tkinter,我正在尝试编写一个小程序,其中有一个使用Python和Tkinter的标签和输入字段列表(请参见下面的代码)。添加小部件没有问题。然而,当我想使用其中一个实例的方法时(比如其中一个输入字段上的Insert()),我想不出一种方法 我的代码如下所示: from Tkinter import * import random root = Tk() attributes = {'Strength':10, 'Dexterity':10, 'Constitution':10, 'Intelligenc

我正在尝试编写一个小程序,其中有一个使用Python和Tkinter的标签和输入字段列表(请参见下面的代码)。添加小部件没有问题。然而,当我想使用其中一个实例的方法时(比如其中一个输入字段上的Insert()),我想不出一种方法

我的代码如下所示:

from Tkinter import *
import random
root = Tk()

attributes = {'Strength':10, 'Dexterity':10, 'Constitution':10, 'Intelligence':10, 'wisdom':10, 'charisma':10}
entries = []
labels = []

i = 0
for a in attributes:
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   entries.append(Entry(root).grid(column = 1, row = i))
   i = i+1

root.mainloop()
我试过一个简单的方法

entries[i].insert("text to insert")

但这没用。我还看到过其他一些人试图使用列表中的对象的例子,看起来他们正在做我第一次尝试时做的事情。我错过什么了吗

谢谢

条目(根)。grid()
返回一个
NoneType
对象,因此列表中存储的所有内容都是
None
。您可以先创建
条目
小部件,调用
grid()
,然后将其附加到列表中

from Tkinter import *
import random
root = Tk()
attributes = {'Strength':10, 'Dexterity':10, 'Constitution':10, 'Intelligence':10, 'wisdom':10, 'charisma':10}
entries = []
labels = []


for i,a in enumerate(attributes):
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   e = Entry(root)
   e.grid(column=1, row=i)
   entries.append(e)
   entries[i].insert(INSERT,"text to insert")



root.mainloop()

我在启动Python之前遇到过这个问题。我想,“为什么要用两行代码来创建一些东西并设置网格位置。我将把它们全部放在一行上。”有趣的故事,“.grid”没有返回任何内容。因此,我认为您没有在此处添加任何内容。

您遗漏的是错误消息。它告诉你什么?如果ypu从字面上理解错误信息,它会让你发现什么?是的,就是它。。。看到我上面的评论,我应该想到。谢谢,谢谢!就是这样(我真的应该想到..我打印了一些条目,我得到的只是(没有,没有…)
from Tkinter import *
import random
root = Tk()
attributes = {'Strength':10, 'Dexterity':10, 'Constitution':10, 'Intelligence':10, 'wisdom':10, 'charisma':10}
entries = []
labels = []


for i,a in enumerate(attributes):
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   e = Entry(root)
   e.grid(column=1, row=i)
   entries.append(e)
   entries[i].insert(INSERT,"text to insert")



root.mainloop()