pythonttkinter用StringVar调用字典?

2024-05-23 22:36:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python中使用tkinter,我有一个恼人的bug,我似乎无法修复,尽管答案可能很明显。在

我试图用字符串调用字典,但由于某些原因,我得到了错误: 类型错误:不可损坏的类型:StringVar。以下是与该问题相关的代码片段:

from Tkinter import *
gpa = Tk()

weightsy = {'0': 2, '.1': 6, '.25':.2, '.5':.56, '.75':75, '1':12}
acadw = StringVar()
acadw.set(".1")
print (weightsy.get(acadw)) #Here is the issue; it should return the integer 6.

mainloop()

另外,如果我删除了与tkinter相关的代码(比如import,gpa=Tk(),StringVar,.set,mainloop()),它就可以工作了,所以我认为这是一个与tkinter相关的问题。在


Tags: the答案代码import类型tkinter错误bug
1条回答
网友
1楼 · 发布于 2024-05-23 22:36:31

正如您必须调用StringVar对象的set方法一样,您还需要调用get来检索{}数据。在

print weightsy[acadw.get()]

字典不知道如何将对象转换为字符串,因此它尝试获取与acadw关联的值。您得到的是TypeError而不是KeyError,因为StringVar对象碰巧是不可损坏的。在

相关问题 更多 >