はじめに

対象

 Python3による開発経験のある方を対象としています.Python3プログラミングの基礎や開発環境の作り方,使い方は特に説明しません.
 既にPython3とwxPythonがインストールされていることを前提としています.

wxPythonとは

 wxPythonは,Python3から利用できるGUIツールキットです.

動作環境

 動作確認に使用したバージョンは以下のとおりです。
 Python 3.6.4
 wxPython 4.0.1

windowを使う

単純なwindow表示

window_display01.py
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'Hello,World!',size=(500,500))
frame.Show()
app.MainLoop()

まず,import wx を使ってwxモジュールのインポートを行います.もちろん,wxPythonをインストールしていないとImportErrorが発生します.

app = wx.App() はwx.Appオブジェクトをインスタンス化しています.wxPythonを利用するため必須なインスタンス.

3行目は,親オブジェクト,ID,タイトルの引数でwx.Frameオブジェクトをインスタンス化しています.また,sizeはwindowのサイズ(幅×高さ)となります.

frame.Show() はwx.FrameクラスのShow関数を呼び出すことによって,作成されたフレームが可視化されます.window_display.pyの実行結果は下の図となります.
スクリーンショット 2018-04-10 11.10.14.png

app.MainLoop() はwx.AppのMainLoop関数を呼び出しを行い,イベントのキャッチを開始します.この行をコメントアウトして再実行すると,フレームが一瞬表示されたあと,アプリケーションが終了してしまいます.

追記:

今回のサンプルコードではwx.Appクラスを引数なしでインスタンス化していますが,最大で4つの引数を渡すことができます.以下の4つのappをそれぞれ試してください.

window_display02.py
import wx
(1) app = wx.App()
(2) app = wx.App(False)
(3) app = wx.App(True,"出力ファイルパス")
(4) app = wx.App(True,None)
frame = wx.Frame(None, -1, 'Hello,World!',size=(500,500))
frame.Show()
print("Welcome")
app.MainLoop()

予約済みID

以下のサンプルコードは予約済みIDを利用したwx.Buttonの例です.

window_display03.py
import wx
app = wx.App(False)
frame = wx.Frame(None, -1, 'Hello,World!' ,size=(300,100))

wx.Button(frame, wx.ID_OPEN, pos=(10,10) ,label="開く")
wx.Button(frame, wx.ID_CLOSE, pos=(10,40))
wx.Button(frame, wx.ID_NEW, pos=(100,10))
wx.Button(frame, wx.ID_SAVE, pos=(100,40))
wx.Button(frame, wx.ID_HELP, pos=(200,40))

frame.Show()
app.MainLoop()

下の図は実行結果となります.
wx.ID_OPEN,wx.ID_CLOSE,wx.ID_NEWなどは「予約済みIDとなります.
posはボタンの配置座標(縦×横)となります.
labelはボタンのラベル名となります.

スクリーンショット 2018-04-10 12.19.51.png

今回のwxPythonを使ってみる(1)は以上で終わりましす.
読んでいただいてありがとうございます.
また今度で会いましょ!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.