wxpythonを用いたGUIを作成中です。
トグルボタンが押されている場合はループ処理を実行・
もう一度押されたら処理を停止する機能を実装したいです。
PushButton内のfor文内にてどのような処理を行えばトグルボタンの値を取得できるでしょうか。
###該当のソースコード
python
1 2import wx 3import time 4 5import gettext 6 7class MyFrame(wx.Frame): 8 def __init__(self, *args, **kwds): 9 kwds["style"] = wx.DEFAULT_FRAME_STYLE 10 wx.Frame.__init__(self, *args, **kwds) 11 self.button_1 = wx.ToggleButton(self, wx.ID_ANY, _("button")) 12 self.text_ctrl_4 = wx.TextCtrl(self, wx.ID_ANY, "text") 13 self.choice_2 = wx.Choice(self, wx.ID_ANY, choices=[_("1"), _("2"), _("3")]) 14 15 self.__set_properties() 16 self.__do_layout() 17 self.test = 1 18 self.Bind(wx.EVT_TOGGLEBUTTON, self.PushButton, self.button_1) 19 self.Bind(wx.EVT_TEXT_ENTER, self.EnterText, self.text_ctrl_4) 20 21 22 def __set_properties(self): 23 self.SetTitle(_("frame")) 24 self.choice_2.SetSelection(0) 25 26 def __do_layout(self): 27 sizer_16 = wx.BoxSizer(wx.VERTICAL) 28 sizer_17 = wx.BoxSizer(wx.VERTICAL) 29 sizer_17.Add(self.button_1, 0, 0, 0) 30 sizer_17.Add(self.text_ctrl_4, 0, 0, 0) 31 sizer_17.Add(self.choice_2, 0, 0, 0) 32 sizer_16.Add(sizer_17, 1, wx.EXPAND, 0) 33 self.SetSizer(sizer_16) 34 sizer_16.Fit(self) 35 self.Layout() 36 37 def PushButton(self, event): 38 for i in range(10): 39 self.test +=1 40 time.sleep(1) 41 button = self.button_1.GetValue() 42 43 if button: 44 print(self.test) 45 else: 46 break 47 48 def EnterText(self,event): 49 print(self.text_ctrl_4.GetValue()) 50 51class MyApp(wx.App): 52 def OnInit(self): 53 self.frame = MyFrame(None, wx.ID_ANY, "") 54 self.SetTopWindow(self.frame) 55 self.frame.Show() 56 return True 57 58 59if __name__ == "__main__": 60gettext.install("app") # replace with the appropriate catalog name 61 62 app = MyApp(0) 63 app.MainLoop()
###補足情報(言語/FW/ツール等のバージョンなど)
python3.6.1
wxpython

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。