10

pngアイコン用の画像ファイルのデータベースを使用するアプリケーションを Tkinter で開発しています。上記の画像をアプリケーションで使用するために、PIL を使用してそれらを開きImage.open、関数を介して実行してImageTk.PhotoImageから、ウィジェット コンストラクターに渡します。

問題は、プロジェクト全体を Python 3.x に移植しようとしているのですが、PIL が Python 3 をサポートしていないため、アイコンをアプリケーションにロードする方法がわかりません。

すべてのアイコンをビットマップに変換せずにアイコンを使用できるようにするソリューションを誰かが知っていれば、.gif非常に感謝しています!

4

3 に答える 3

11

GIF と PPM/PGM のサポートのみが文書化されていますが、PNG ファイルは透明であっても、Linux の python 3.4.1 の tkinter と ttk で正しく表示されます。

透明度とアルファを含む PNG ファイルの例

上記の PNG 画像には透過性が含まれています。

from tkinter import *          

root = Tk()                    

photo = PhotoImage(file="example.png")
photo_label = Label(image=photo)
photo_label.grid()             
photo_label.image = photo      

text = Label(text="Text") # included to show background color
text.grid()    

root.mainloop()

上記のコードは、以下に示すように透明度を使用して画像を正しくレンダリングします。

テキスト付きのPython 3.4.1 tkinterのPNGテスト画像

スクリーンショットは、ウィンドウの装飾がなく、GUI の配色が暗い設定で作成されていることに注意してください。

于 2014-08-03T06:13:58.450 に答える