wxPythonでウインドウを表示してみよう

2021-05-09

wxPythonで、ウィンドウを表示する方法を説明します。

確認環境

  • Windows 10 Home
  • Python 3.9
  • wxPython 4.1

サンプルソース

################################################################################
#履歴
# Ver.1.00.00	新規作成
################################################################################
import wx

WinTitle    = "ウィンドウのタイトルを設定します"				#ウィンドウタイトル
WinW	    = 400								#ウィンドウの横幅(px)
WinH	    = 300								#ウィンドウの高さ(px)

################################################################################
#自作Appクラスの設計図
#GUIプログラム(wxPython)本体です。
#現時点で理解する必要はありません。「こういう」ものです
################################################################################
class MyApp(wx.App):
    def OnInit(self):
        return True

################################################################################
#フレームの設計図
#現時点で理解する必要はありません。「こういう」ものです
################################################################################
class MyFrame1(wx.Frame):
    def __init__(self, parent):                                                 # フレーム作成時に呼び出されます
        wx.Frame.__init__ (self, None, -1, WinTitle, size=(WinW, WinH))         # ウィンドウタイトルとウィンドウサイズをセットします

################################################################################
#ここまでは設計図になります。
################################################################################

################################################################################
#メイン処理
#ここがプログラムの本番、スタート地点となります。
################################################################################
if __name__ == '__main__':
    window1 = MyApp(0)								# 上に書いてあるプログラム本体の設計図を実行し、「window1」という名前をつけました
                                                                                # MyApp(0)の「0」は気にしないでください
    frame1 = MyFrame1(None)		                                        # 上に書いてあるフレームの設計図を実行し、「frame1」という名前をつけました
                                                                                # 「None」は気にしないでください
    panel1 = wx.Panel(frame1)							# 1つ上で作成したフレーム「frame1」に対して、パネルを作成し「panel1」という名前をつけました

    frame1.Show()								# フレームを表示
    window1.MainLoop()								# イベント待機(クリック等操作されるのをまっています)

まずは、この内容をコピーして、hoge.pyとして(文字コード:UTF-8)で保存してください。

「hoge」の部分は好きに決めて構いません。

hoge.pyを右クリックし、「Edit with IDLE」で適当なPythonを選択してください。

起動したウィンドウのメニューから[Run]-[Run Module](F5)を選択してください。

(実行できれば、他のやり方でも構いません)

そうすると、↓のようなウィンドウが表示されます。

プログラムは実質20行もありませんので

  • ウィンドウのタイトル
  • ウィンドウの幅(横の長さ)
  • ウィンドウの高さ(縦の長さ)

くらいは簡単に変更できると思いますので、試してみてください。

その他に例えば、グレー部分の背景色を変更したい場合は

panel1 = wx.Panel(frame1)

frame1.Show()

の間に

panel1.SetBackgroundColour('#FF00FF')

↑こんな感じのものを入れ

################################################################################
#履歴
# Ver.1.00.00	新規作成
# Ver.1.00.01	背景色を追加
################################################################################
import wx

WinTitle    = "ウィンドウのタイトルを設定します"				#ウィンドウタイトル
WinW	    = 400								#ウィンドウの横幅(px)
WinH	    = 300								#ウィンドウの高さ(px)

################################################################################
#自作Appクラスの設計図
#GUIプログラム(wxPython)本体です。
#現時点で理解する必要はありません。「こういう」ものです
################################################################################
class MyApp(wx.App):
    def OnInit(self):
        return True

################################################################################
#フレームの設計図
#現時点で理解する必要はありません。「こういう」ものです
################################################################################
class MyFrame1(wx.Frame):
    def __init__(self, parent):                                                 # フレーム作成時に呼び出されます
        wx.Frame.__init__ (self, None, -1, WinTitle, size=(WinW, WinH))         # ウィンドウタイトルとウィンドウサイズをセットします

################################################################################
#ここまでは設計図になります。
################################################################################

################################################################################
#メイン処理
#ここがプログラムの本番、スタート地点となります。
################################################################################
if __name__ == '__main__':
    window1 = MyApp(0)								# 上に書いてあるプログラム本体の設計図を実行し、「window1」という名前をつけました
                                                                                # MyApp(0)の「0」は気にしないでください
    frame1 = MyFrame1(None)		                                        # 上に書いてあるフレームの設計図を実行し、「frame1」という名前をつけました
                                                                                # 「None」は気にしないでください
    panel1 = wx.Panel(frame1)							# 1つ上で作成したフレーム「frame1」に対して、パネルを作成し「panel1」という名前をつけました

    panel1.SetBackgroundColour('#FF00FF')                                      	# panel1の背景色を#FF00FFにしました。
                                                                                # 背景色は設定しなければ、プログラムが動作するPCの環境設定に従った色になるはずです
                                                                                # 自分で好きな色にしたい場合は「カラーコード」などで検索してください

    ############################################################################
    #
    ############################################################################
    frame1.Show()								# フレーム表示
    window1.MainLoop()								# イベント待機

こんな風にすれば実現できます。

「#FF00FF」が赤紫になります。

色については「カラーコード」等で検索すれば分かると思います。

補足

今回は、Appクラス、Frameクラス、Panelクラスというものを使用しました。

それぞれのリファレンスは以下になります。(Chromeなら右クリックから「日本語に翻訳」で翻訳できます。)

以上。

wxPython入門

後記

最後までお読みくださりありがとうございます。

こんなに更新したのに、現在はほぼ誰も見ていないゴミカスクズ無価値ブログです。

よければ(はてな)ブックマークや拡散をお願いいたします。

更新の原動力として励ましが欲しいのです…<(_ _)>

当ブログ内お薦め記事