wx.Frame (wxPython) | Python-izm

Frame

wxPythonの基本となるFrameのサンプルです。まずはFrameを生成し、そのFrame上に様々なものを配置していくのが主な流れとなります。

フレームの生成

まずは下記サンプルを実行してみましょう。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム')
frame.Show()

application.MainLoop()

テストフレームというタイトルの何もないフレームが表示されたはずです。

では一つずつ何をしているのか見ていきましょう。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム')
frame.Show()

application.MainLoop()

まずは3行目、この記述でアプリケーションの初期化を行います。wxPythonを使用したアプリケーションでは必ず必要です。5行目でFrameを生成しています。 引数はそれぞれ (親ウィンドウ, 識別子, タイトル)となりwx.ID_ANYは基本的に-1が入ります。次の6行目で生成したFrameの可視化を行う処理を呼び出します。最後の8行目の記述は、イベント待ち受け状態へ遷移する、といったところでしょうか。8行目の記述をコメントアウトしてアプリケーションを起動すると違いが良く分かると思います。

サイズの指定

表示サイズ指定は引数sizeを渡します。これで300×300のフレームが生成されます。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム', size=(300, 300))
frame.Show()

application.MainLoop()

表示位置の指定

ディスプレイ内における表示位置の指定です。 引数posを渡します(下記サンプルの場合は画面左上へ表示されます)。画面中央へ表示する際はCentre呼び出しておくと中央へ表示されます。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム', pos=(0, 0))
# 中央へ表示する場合
# frame.Centre()
frame.Show()

application.MainLoop()

ステータスバーの利用

ステータスバーを利用する場合はCreateStatusBarを、ステータスバーに文字列を表示させるにはSetStatusTextを使用します。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム')

frame.CreateStatusBar()
frame.SetStatusText('python-izm.com')

frame.Show()

application.MainLoop()

アイコンの割り当て

アイコンの割り当てはSetIconを使用します。

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム')

icon = wx.Icon('frame.ico', wx.BITMAP_TYPE_ICO)
frame.SetIcon(icon)

frame.Show()

application.MainLoop()