2011-07-19 8 views
2

Tkinterチュートリアルサイトを使って、私はPythonプログラムのLabelに簡単なペイント描画gifを追加しようとしました。ラベルに簡単な画像を追加しようとしています

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 

なぜを返したよう?これをどうすれば解決できますか?あなたは

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

を行うと

+0

あなたは私の提案を試してみませんか? – agf

答えて

2

それはlabelLabel().grid()の出力ではなく、Label()によって作成された新しいLabelインスタンスを格納しています。

あなたはlabelLabelインスタンスを格納し、グリッドを設定するには、両方たい場合

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

を行う必要があります。

関連する問題