LoginSignup
54
64

More than 5 years have passed since last update.

wxPythonを使ってみる (1)

Last updated at Posted at 2018-04-12

はじめに

対象

 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)は以上で終わります.
読んでいただいてありがとうございます.
また今度で会いましょ!

54
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
64