全体的に素晴らしくまとまっていると思います。というかまんま Win32 のような気もしますが。
でも wx.Window.ClientWidth とか欲しかったよ。
属性アクセス
GetXXX 及び SetXXX 両方のメソッドがある場合、XXX でアクセスできるが、これは XXX = property(GetXXX, SetXXX) というコードで機械的に生成しているだけのようだ。
プロパティ経由でアクセスすれば get / set ともに簡便だが、うまくいかないことがあるので注意されたい。
イベント
wxWidgets のイベントはマルチキャスト形式のイベントシステムである。
他のイベントに処理を継続させたいときは event.Skip() する。イベント自体を停止させたいときは event.StopPropagation() する。
ここは試してないので適当。
wx.EVT_PAINT
次のコードで上書き描画できる ?
event.Skip() dc = wx.ClientDC(self)