wxPythonと(グループ化された)ラジオボタンの問題:
グループにバインドされた3つのラジオボタンがあります。これにより、ラジオボタンA、B、またはCを選択でき、常に1つが選択されます。これがwx.RB_GROUPスタイルの性質であることに感謝します。
ラジオボタンのみをクリックして、A = B = C = Falseのようにすべてのボタンの選択を解除することはできますか?リセットボタンがこの機能を実行するコード(下記)を合理化しましたが、理想的にはGUIで選択を解除したいと思います。
import wx
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Tutorial", size=(300,250))
panel = wx.Panel(self, wx.ID_ANY)
self.radio1 = wx.RadioButton(panel, label="A", pos=(20,40), style=wx.RB_GROUP)
self.radio2 = wx.RadioButton(panel, label="B", pos=(20,70))
self.radio3 = wx.RadioButton(panel, label="C", pos=(20,100))
btn = wx.Button(panel, label="Check", pos=(20,140))
rst = wx.Button(panel, label="Reset", pos=(20,170))
btn.Bind(wx.EVT_BUTTON, self.onBtn)
rst.Bind(wx.EVT_BUTTON, self.onRst)
def onBtn(self, event):
print "A = ", self.radio1.GetValue()
print "B = ", self.radio2.GetValue()
print "C = ", self.radio3.GetValue()
print "\n\n"
def onRst(self, event):
self.radio1.SetValue( 0 )
self.radio2.SetValue( 0 )
self.radio3.SetValue( 0 )
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm().Show()
app.MainLoop()