【发布时间】:2018-01-04 05:56:39
【问题描述】:
我现在正在尝试制作一个非常基本的程序,它将在标签框中垂直显示一个窗口和一组复选框。我希望复选框根据列表的内容自动生成。我在这里找到了一个有类似愿望的人的条目并复制了他的代码,但我收到了错误:“TypeError: list indices must be integers or slices, not str”
我是 Python 新手,尝试了所有方法来纠正这个问题,但还是失败了。任何帮助都会很棒!完整代码如下:
from tkinter import *
#list to be used to make Checkboxes
pg = ["goal1","goal2"]
class yeargoals:
global pg
def __init__(self,master):
self.master = master
master.title("This Year's Goals")
#Makes the label Fram I want the Checkboxes to go in
self.LabelFramep= LabelFrame()
self.LabelFramep.configure(width=210)
#Makes the Checkboxs from the list above
for goal in pg:
pg[goal] = Variable()
l = Checkbutton(self.LabelFramep, text=goal, variable=pg[goal])
l.pack()
root = Tk()
Window = yeargoals(root)
root.mainloop()
【问题讨论】:
-
错误信息非常简单;您用于列表索引的变量是一个字符串,需要先转换为 int。我还没有真正查看过您的代码,但在我的脑海中,可能是
goal变量给您带来了问题。