βshortの自堕落Diary

web関係や、プログラミングなどを扱う予定です。プランなど立てていないので、不定期投稿になります。

tkinterで画像を表示させる

pythonGUI

tkinterでGUIを作っていきます。
tkinterで画像を表示したいと思います。

ソースコード

import tkinter as tk
root = tk.Tk()

canvas = tk.Canvas(
                root,               # 親要素をメインウィンドウに設定
                width = 500,        # 幅を設定
                height = 300,       # 高さを設定
                relief=tk.RIDGE,    # 枠線を表示
                bd=2                # 枠線の幅を設定
             )
canvas.place(x=370, y=0)                # メインウィンドウ上に配置
    
img = tk.PhotoImage(file = '20140729211926.gif')  # 表示するイメージを用意
canvas.create_image(                    # キャンバス上にイメージを配置
        0,                                  # x座標
        0,                                  # y座標
        image = img,                        # 配置するイメージオブジェクトを指定
        anchor = tk.NW                      # 配置の起点となる位置を左上隅に指定
    )

root.mainloop()

手順

まずtkinterをインポートします。
そのあと、キャンバスを生成し、それにイメージを配置します。

苦戦しました。

画像が表示されない!!!
注意!!!
まず最初に僕は、12歳からはじめる ゼロからの Pythonゲームプログラミング教室を参考にGUIに臨みました。
この本は、Windowsを対象に書かれています。
この本では、.pngファイルをtkinterで表示させています!!!
しかし、僕のmacでは.pngファイルが表示できない!!!
そこで、Windowsで試してみました。こんな感じで、画像の表示できました。
f:id:weblog2016it:20170905224859p:plain

また、僕はこのPythonプログラミングパーフェクトマスター (Perfect Master)でも勉強をしています。
この本は、MacWindowsの両方に対応しています。
この本のサンプルコードを実行してみると、macでも画像の表示ができました。
この本は.gifファイルを表示させています。

では、なぜ画像が表示できたのか

調べてみると、tkinterは標準でppmとgifファイルを扱えるみたいです。
www.shido.info
なので、pngmacでは表示できませんでした。
恐らくこれが原因だったのでしょう。

しかし、なぜWindowspngファイルが表示できたのでしょう。
よくわかりません。
未解決ですいません。

参考


12歳からはじめる ゼロからの Pythonゲームプログラミング教室


Pythonプログラミングパーフェクトマスター (Perfect Master)