Edited at

wxPythonを使ってみる (1)


はじめに


対象

 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)は以上で終わります.

読んでいただいてありがとうございます.

また今度で会いましょ!