メモ的なもの。
インストールについて
インストールと運用はこのページを参考にした。
naonaorange.hatenablog.com
Mac版をGitHubのページからZipファイルをダウンロードして使っているのだが、試しにソースコードからインストールしてみたところ、フォントがぼやけたり、プロパティ記述エリアが真っ黒になってしまったりと、あんまり良くなかった。
Panelについて
wxPythonの作成チュートリアルなどではFrameの下にPanelを置くようになっている。例えば下記のような感じ。
import wx application = wx.App() frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム', size=(600, 300)) panel = wx.Panel(frame, wx.ID_ANY) panel.SetBackgroundColour('#AFAFAF')
ところがwxFormBuilderではFrameの直下にはPanelを置くことができない。下記のようにBoxSizerなどを配置して、その下に置くほかない。
間違えやすいのだが、このときに追加するPanelは上の画像にあるContainersタブの中にあるPanelを選択しなければならない。Formsタブの中にもPanelがあるが、こちらはFrameの中にもSizerの中にも入らない。
IDについて
通常はwx.ID_ANYで問題ないのだが、下記のようにコントロールにユニークなIDをもたせたい時がある。
button_samp = wx.Button(panel, wx.ID_ANY, 'sample') button_ok = wx.Button(panel, 1001, 'OKボタン') button_no= wx.Button(panel, 1002, 'Noボタン')
wxFormBuilderのコントロールプロパティにそのまま、上記の例のIDである、1001や1002を入力するとコード生成はできるのだが実行時にエラーになる。生成されたコードを見るとimport文の直下が下記のようになっている。
import wx import wx.xrc 1001 = 1000 1002 = 1001
どうやらIDは自動生成されて、コントロールに指定したIDを名称とする変数に割り当てられるようで、上記の例では変数名1001に1000が割り当てられてしまっている。もちろん、Pythonの変数命名規則に反しているのでエラーになる。なので、コントロールのID欄には下記のようになるよう、id_okなどといった変数名を入力してやらねばならない。
import wx import wx.xrc id_ok= 1000 id_no = 1001