GUIライブラリ wxPythonで画像表示 BoxSizerでレイアウトしてみた

まくまく
まくまく
人気のGUIライブラリwxPythonで作成したウインドウに画像を表示させてみます。



出力


今回作成したのはこちら。ウインドウを作成しテキストと画像をBoxSizerで表示しています。

単に画像を張るだけじゃなくて、Sizerを使用して画像を表示するにはどうしたら良いのだろうと試行錯誤を繰り返してなんとか表示できました。

元の画像サイズが少し大きかったので、Scaleでリサイズしてます。

今回テキストと画像は縦並びにしてますが、横並びの場合は「wx.HORIZONTAL」です。

サンプルプログラム

#ライブラリのインポート
import wx

class MyFrame(wx.Frame):

    def __init__(self, *args, **kw):
        super(MyFrame, self).__init__(*args, **kw)
        
        pnl = wx.Panel(self)

        #テキストを作成
        self.text1 = wx.StaticText(self, label="Image貼り付けテスト")

        #画像を読み込み
        image = wx.Image('img1.jpg')
        image = image.Scale(250,182, wx.IMAGE_QUALITY_HIGH)
        self.bitmap = image.ConvertToBitmap()        
        self.bitmap2 = wx.StaticBitmap(self,-1, self.bitmap)
       
        #Sizerを作成
        sizer = wx.BoxSizer(orient=wx.VERTICAL)
        #テキストと画像をSizerに追加
        sizer.Add(self.text1, 1) 
        sizer.Add(self.bitmap2, 1)

        #sizerをセット
        self.SetSizer(sizer) 

if __name__ == '__main__':
    app = wx.App()
    frm = MyFrame(None, title='wxPythonのテスト')
    frm.Show()
    app.MainLoop()
タイトルとURLをコピーしました