デザインのメモ

ロゴやフォント、フォトショ・イラレのお話をします

wxPython(Phoenix)で始めるGUIプログラミング【画像】

この記事について

こちらにまとめられています。

nippori30.hatenablog.com

今回、何をするか?

画像を表示してみましょう!

とりあえず動かしてみよう!

画像を表示します。

# app.py
import wx


class MyApp(wx.Frame):

    def __init__(self, *args, **kw):
        super(MyApp, self).__init__(*args, **kw)

        self.init_ui()

    def init_ui(self):
        self.SetTitle('画像')
        self.SetSize((400, 300))
        self.Show()

        panel_ui = wx.Panel(self, -1, pos=(50, 50), size=(300, 200))

        image = wx.Image('sample.png')
        bitmap = image.ConvertToBitmap()

        wx.StaticBitmap(panel_ui, -1, bitmap, pos=(0, 0), size=image.GetSize())


app = wx.App()
MyApp(None)
app.MainLoop()

はじめに、app.pyと同じフォルダにこの画像をsample.pngという名前で保存します。
f:id:nippori30:20171003111305p:plain
そして、app.pyを実行します。

> pythonw app.py

すると、このような星の画像が表示されるはずです。
f:id:nippori30:20171003111326p:plain

解説

        image = wx.Image('sample.png')
        bitmap = image.ConvertToBitmap()

Imageは画像を開く関数です。ここでは画像の場所を指定するため、同じフォルダの「sample.png」を選択してあげます。
しかし、このままではwxPythonで表示できる形式ではないので、表示できるようにbitmap形式に変換する必要があります。
それが二行目のConvertToBitmap()です。

        wx.StaticBitmap(panel_ui, -1, bitmap, pos=(0, 0), size=image.GetSize())

StaticBitmap()は画像を表示するための関数で、第三引数に表示する画像を渡します。
sizeにしているGetSize()ですが、これは画像サイズを取得して、原寸で表示するために、このように指定しています。

以上です。

次回

現在は未定ですが、何か案があれば、コメントしていただければ、対応できます。

もしかしたら、今までの内容をもっと深く掘り下げていくかもしれません。