Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
62
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@Kenta-Han

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
62
Help us understand the problem. What are the problem?