wxPythonでAA管理ツールをつくろう!第一回 GUIを作る
あいさつ
つかさです。
最近AAを多用するので、AA管理ツールを作ろうと思います。
- 一つのテキストファイルに一つのAA
- インクリメンタルサーチ、migemoが使える
- ツールチップ表示で中身を確認できる
くらいができたらなと思ってます。既存のツールもあるにはあるのですが、これらをすべて満たすものはなさそうという理由で自作します。
今回、これを作成する過程を連載記事にしようと思います。高度なものにはなりようがないのですが、簡単なプログラムを作る人の参考になればと思います。最終的には次のようなのになる予定ですが、まだ未完成。
同じようなコンセプトで以前連載したそして途中で投げ出したPythonでコマンドラインランチャを作ろう!シリーズも参考にしてください。Pythonカテゴリーからたどれます。
インストール
PythonとwxPythonをインストールします。
あと、wxPythonのHPからは一緒にwxPython Demo for Windowsもダウンロードすると参考になっていいと思います。
Guiを作る
まずはGUIを作ります。
- AAlist01.py
import wx class MyTxtFrm(wx.Frame): def __init__(self, parent, id): wx.Frame.__init__(self, parent, id) self.TxtCtr = wx.TextCtrl(self, -1) self.LBox = wx.ListBox(self, -1) self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.TxtCtr, 0, wx.EXPAND) self.sizer.Add(self.LBox, 1, wx.EXPAND) self.SetSizer(self.sizer) self.SetAutoLayout(1) self.sizer.Fit(self) class MyApp(wx.PySimpleApp): def OnInit(self): self.TxtFrm = MyTxtFrm(None, -1) self.TxtFrm.SetSize( (180, 200) ) self.TxtFrm.Show() self.TxtFrm.TxtCtr.SetFocus() return 1 app = MyApp() app.MainLoop()
フレームを作り、そこにコントロールを組み込み、Show()で表示する、というのはコマンドラインランチャを作ったときと同じです。
違うのは、Sizerを使っている点です。
self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.TxtCtr, 0, wx.EXPAND) self.sizer.Add(self.LBox, 1, wx.EXPAND) self.SetSizer(self.sizer) self.SetAutoLayout(1) self.sizer.Fit(self)
という順序です。
こうすると、一つのウィンドウ内に複数のコントロール(今回はTextCtrlとListBox)を入れるときに、大きさだとかを勝手に調整してくれます。
そしてできあがったのがこちら。
どっかで見たようなGuiができあがりましたね^^
次回は、実際にリストを入れてそれを選択できるようにします。