Windows Dev. Site

wxPython

GUIの表示方法はいろいろありますが、今回はwxPythonを試してみました。

参考)https://zetcode.com/wxpython/widgets/
環境)wxpython v4.2.1 / python v3.10.13 / Anaconda Navigator 2.4.0 / Windows 11

wxhello.py

import wx

class Example(wx.Frame):
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)
        self.InitUI()

    def InitUI(self):
        wx.CallLater(3000, self.ShowMessage)

        pnl = wx.Panel(self)
        btn1 = wx.Button(pnl, label='Close', pos=(20, 20))
        btn1.Bind(wx.EVT_BUTTON, self.OnClose)

        btn2 = wx.Button(pnl, label='Message', pos=(20, 60))
        btn2.Bind(wx.EVT_BUTTON, self.ShowMessage2)

        self.SetSize(550, 250)
        self.SetTitle('Message box')
        self.Centre()

    def ShowMessage(self):
        wx.MessageBox('Hello!', 'Info',
            wx.OK | wx.ICON_INFORMATION)

    def ShowMessage2(self, e):
        wx.MessageBox('Hi!', 'Info',
            wx.OK | wx.ICON_INFORMATION)

    def OnClose(self, e):
        self.Close(True)

def main():
    app = wx.App()
    ex = Example(None)
    ex.Show()
    app.MainLoop()

if __name__ == '__main__':
    main()

実行

python wxhello.py

py03

py04

メッセージ表示関数を二つ用意したのは、呼び出し方によって、引数が違うからです。
メモでした。