wxPythonで自作ダイアログを表示

wxPythonでファイルダイアログ - メグタンの何でもブログ の続き

wxformbuilderでオリジナルダイアログを作成

wxformbuilderでFormsの左から3番目のDialogを追加
その下にLayoutの左端wxBoxSizerを追加
 このwxBoxSizerの中に自由にボタンとかテキストボックスを配置
その下にLayoutの左端wxBoxSizerと右から2番目のwxStdDialogButtonSizerを追加
wxStdDialogButtonSizerにはOK、Cancelボタンが配置されている。
このボタンを押すとダイアログが閉じてwx.ID_OKもしくはwx.ID_CANCELが戻される。

Generate Code で画面の.pyファイルを書き出す。
設定した対応するイベント部分を本体プログラムにコピーして修正する。
Generate Code で作成したファイルはインデントがタブなので必要に応じてスペース4個に修正

本体プログラムから呼び出す

表示前にダイアログ上に表示するデータを設定
ダイアログをOKボタンで閉じた時にはデータを読み出して保存

    def m_bDialogOnButtonClick( self, event ):
        dlg = o3dtest.MyDialog1(self)
        dlg.CenterOnScreen()
        dlg.m_textCtrl1.SetValue(self.t)
        # this does not return until the dialog is closed.
        val = dlg.ShowModal()
        if val == wx.ID_OK:
            self.t = dlg.m_textCtrl1.GetValue()
        dlg.Destroy()