Попытка добавить простое изображение в метку - PullRequest
2 голосов
/ 19 июля 2011

На учебном сайте Tkinter, предоставленном школой, я попытался добавить простой нарисованный Paint GIF-файл в Label на моей программе Python.

mainframe = ttk.Frame(sub, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe['padding'] = (5,10)
label = ttk.Label(mainframe).grid(column=1, row=1)
image1 = PhotoImage(file='myimage.gif')
label['image'] = image1
sub.mainloop()

Данный фрагмент кода:

label = ttk.Label(mainframe).grid(column=1, row=1)
image1 = PhotoImage(file='myimage.gif')
label['image'] = image1

Как это возвращается

Exception in Tkinter callback
Traceback (most recent call last):
    File "C:\Python31\lib\tkinter\__init__.py", line 1399, in __call__
        return self.func(*args)
    File "\\curriculum.lan\filestore\home\2005\jasomner\Downloads\trial5.py", line 20, in subwindow
        label['image'] = image1
TypeError: 'NoneType' object does not support item assignment

Почему? Как я могу это исправить?

1 Ответ

2 голосов
/ 19 июля 2011

Когда вы делаете

label = ttk.Label(mainframe).grid(column=1, row=1)

, он сохраняет вывод Label().grid() в label, а не новый экземпляр Label, созданный Label().

.Сделайте

label = ttk.Label(mainframe)
label.grid(column=1, row=1)

, если вы хотите сохранить экземпляр Label в label и установить сетку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...