ラジオボタンで値を選んでOKとすると、値をファイルに書き出す(RadioBox2.py)
いくつかの値を並べて、その中の一つをラジオボタンで選択できるようにする。選んだらOKボタンを押して、選んだ値をファイルに書き出すようにしたい。
まず、ラジオボタンの表示はデモの中の"RadioBox.py"を参照した。これに加えて、OKボタンの表示、値をファイルへ書き出すイベントを定義して、RadioBox2.pyを作成する。
以下は、RadioBox2.pyのソース
import wx #---------------------------------------------------------------------- class TestRadioBox(wx.Panel): def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1) sampleList = ['00', '01', '02', '03'] sizer = wx.BoxSizer(wx.VERTICAL) rb = wx.RadioBox( self, -1, "wx.RadioBox", wx.DefaultPosition, wx.DefaultSize, sampleList, 2, wx.RA_SPECIFY_COLS ) self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb) sizer.Add(rb, 0, wx.ALL, 20) self.SetSizer(sizer) b=wx.Button(self, -1, "Write the value") self.Bind(wx.EVT_BUTTON, self.OnButton, b) sizer.Add(b, 0, wx.ALL, 20) def EvtRadioBox(self, event): self.ans = event.GetInt() self.myfile = open('WriteDataFile2.txt', 'w') def OnButton(self, evt): self.myfile.write(str(self.ans)) print self.ans self.myfile.close() #---------------------------------------------------------------------- def runTest(frame, nb, log): win = TestRadioBox(nb, log) return win if __name__ == '__main__': import sys,os import run run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
4つラジオボタンがあり(sampleList)、一つを選ぶ(EvtRadioBox)と値(event.GetInt())がファイルへ書き込まれる(OnButton)。
何とか動いた。
最初、self.myfile.write(self.ans)としたら値を書き込めなかった。strで文字列に変換した。
ウィジェットの配置にはsizerを利用した。配置に関しては、日経ソフトウェア2007年3月号 PYTHON超特急 を参考にさせていただきました。
- 出版社/メーカー: 日経BP出版センター
- 発売日: 2007/01/24
- メディア: 雑誌
- クリック: 2回
- この商品を含むブログ (11件) を見る