Я создаю графический интерфейс Tkinter, который ничего не делает, кроме изображений вызовов - и, конечно, я изо всех сил пытался найти приличную документацию по 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, я могу исправить все остальное.
Если есть более простой способ сделать все это, пожалуйста, сообщите!