我正在制作一个 Tkinter GUI,除了调用图像之外什么都不做——当然,我一直在努力寻找像样的 tkinter 文档。
我的代码中有一行似乎无法按要求执行 - 我想调用字典中的所有值,并在调用下一个值之前为每个值单独打印和拉取相同名称的图像。我已经尝试过 dict.itervalues() 和 dict.values() 并且似乎无法完全弄清楚任何事情......
无论如何,这是片段:
for key in ansDict.iterkeys(): #using the iterkeys function... kind of
x=key
root = tk.Tk() # root window created (is this in the right place?)
root.title('C H E M I S T R Y A B C\'s')
frameAns=tk.Frame(root)
frameAns.grid(row=0, column=0, sticky=tk.NW)
for i in range(len(ansDict[x])):
print '-->' + ansDict[x][i]
for value in ansDict.itervalues(): #This is the most important part
for i in range(len(value)): #pulls value list from dictionary named ansDict
picRef1 = Image.open(value[i] + '.jpg') #calls image file by the same name using PIL
photo1 = ImageTk.PhotoImage(picRef1, master=root)
button1 = tk.Button(frameAns, compound=tk.TOP, image=photo1, text=str(value[i]) + '\nClose me!', bg='white') #pulls up button onto which the image is pasted
button1.grid(sticky=tk.NW, padx=2, pady=2) #places button on grid
button1.image=photo1
root.mainloop()
最后,最后,它拉出一两个图像,然后我收到以下错误:
TclError:无法调用“图像”命令:应用程序已被销毁
我不知道出了什么问题。我无法移动图像命令,并且我需要以某种方式“保存”它,以免它被破坏。我知道这里还有其他代码错误,但我认为如果我弄清楚我得到的 TclError,我可以将其他所有内容都设置好。
如果有更简单的方法来做这一切,请告诉!