【发布时间】:2020-01-21 05:01:17
【问题描述】:
我正在尝试打印我选择的复选框的值。有人可以帮我指出正确的方向吗?我在这一行遇到错误 - print(my_items[item])
这是错误:
TypeError:列表索引必须是整数或切片,而不是 IntVar
import tkinter as tk
from tkinter import *
top = tk.Tk()
top.wm_title("Checklist")
my_items = ['pizza','breadsticks','wings','CocaCola','brownie']
check_boxes = {item:IntVar() for item in my_items}
def confirm():
for item in check_boxes.values():
if item.get() == 1:
print(my_items[item])
for item in my_items:
CB = Checkbutton(top, text = item, variable = check_boxes[item], anchor = W, onvalue = 1, offvalue = 0, height=1, width = 50)
CB.pack()
B1 = tk.Button(top, text = "confirm", command = confirm)
B1.pack()
top.mainloop()
【问题讨论】:
-
请edit您的问题包含错误。
-
问题是 item 不是访问列表的有效索引。抱歉,我对 TKinter 不了解,但与此同时,你可以看看这个:stackoverflow.com/questions/50048561/…
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
查看
print( item )中的内容。列表my_items需要编号,但item不是编号。您必须以不同的方式重写所有内容。为什么不从字典中得到keys?