python3のGUIモジュールwxpythonについて2つ質問です。
下のようなコードを書いたのですが、32行目のbutton_do.Bindイベントバインディングがclick_do関数に引数を渡すことは可能でしょうか。
見た所渡せていなさそうだったので質問させていただきました。
あと、この場合同所のtext_1.GetValue()とtext_2.GetValueを一旦int型に型変換しなければならないと思うのですが、素直にint()の中に入れたら文字列は変換できないとエラーを吐かれました。どうしたらint型としてTestCtrlの中身を扱えるのでしょうか。
python
1import wx 2 3def click_do(number_1, number_2): 4 if radiobutton_1.GetValue(): 5 text_answer.SetValue(str(number_1 + number_2)) 6 elif radiobutton_2.GetValue(): 7 text_answer.SetValue(str(number_1 - number_2)) 8 elif radiobutton_3.GetValue(): 9 text_answer.SetValue(str(number_1 * number_2)) 10 elif radiobutton_4.GetValue(): 11 text_answer.SetValue(str(number_1 / number_2)) 12 else: 13 text_answer.SetValue("ERROR") 14 15application = wx.App() 16frame = wx.Frame(None, wx.ID_ANY, 'MathBorad', size=(300, 200)) 17 18panel = wx.Panel(frame, wx.ID_ANY) 19panel.SetBackgroundColour('#AFAFAF') 20 21text_1 = wx.TextCtrl(panel, wx.ID_ANY) 22text_2 = wx.TextCtrl(panel, wx.ID_ANY) 23text_answer = wx.TextCtrl(panel, wx.ID_ANY) 24 25button_do = wx.Button(panel, wx.ID_ANY, "DO") 26 27radiobutton_1 = wx.RadioButton(panel, wx.ID_ANY, 'plus') 28radiobutton_2 = wx.RadioButton(panel, wx.ID_ANY, 'minus') 29radiobutton_3 = wx.RadioButton(panel, wx.ID_ANY, 'multipul') 30radiobutton_4 = wx.RadioButton(panel, wx.ID_ANY, 'division') 31 32button_do.Bind(wx.EVT_BUTTON, click_do, text_1.GetValue(), text_2.GetValue()) 33 34layout = wx.BoxSizer(wx.VERTICAL) 35layout.Add(text_1, flag=wx.GROW) 36layout.Add(text_2, flag=wx.GROW) 37layout.Add(radiobutton_1, flag=wx.GROW) 38layout.Add(radiobutton_2, flag=wx.GROW) 39layout.Add(radiobutton_3, flag=wx.GROW) 40layout.Add(radiobutton_4, flag=wx.GROW) 41layout.Add(button_do, flag=wx.GROW) 42layout.Add(text_answer, flag=wx.GROW) 43 44panel.SetSizer(layout) 45 46frame.Show() 47application.MainLoop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/20 02:03