2016-11-17 21 views
0

Tkinterで画像をフレームの背景として追加したいのですが、多くのことを試みましたが何も表示されませんでした。私のコードの冒頭でlm、lがその問題を克服した後にlは動きます。ここTkinterに画像が表示されない

は私のコードです:

import Tkinter 
from Tkinter import * 

sc=Tk() 
sc.title("Matplotlib") 
sc.geometry("500x500") 
img=PhotoImage("mat.png") 

fr1=Frame(sc,height=200,bd=5,bg="red",relief=SUNKEN);fr1.pack(side=TOP,fill=X,expand=1) 
fr2=Frame(sc,height=200,bd=5,relief=SUNKEN);fr2.pack(fill=X,expand=1) 
fr3=Frame(sc,height=200,bd=5,relief=SUNKEN);fr3.pack(side=BOTTOM,fill=X,expand=1) 
label1=Label(fr2,image=img);label1.pack(fill=BOTH) 

mainloop() 

方法lはそれを解決することができますか?可能であれば、私のコードの構造にTkinterを使用したい場合、他のモジュールを使用したくない場合

+0

jpgについてはどうですか?私はimgを使用していますが、私はそれに問題はありません。 –

答えて

2

ファイル名がイメージのファイル名として扱われていないという問題があります。最初の非キーワード引数は、画像の内部名として使用されます。

あなたはそれがイメージとしてファイルを使用するためfileキーワード引数を指定する必要があります。

img=PhotoImage(file="mat.png") 

また、インストールしたバージョンに応じて、TkinterのはPNGファイルをサポートしない場合があります。あなたのシステムがそうでない場合、上記の変更で、TclError: couldn't recognize image dataのようなエラーになります。そのような場合は、画像をGIFに変換する必要があります。

+0

エラーなしで実行されますが、tkinterには何も表示されません。 –

関連する問題