繁体   English   中英

索引单选框和包含的按钮

[英]Index radio box and contained buttons

我有多个包含三个按钮的单选框,如下所示。 我想跟踪单选框中单击的单选按钮,然后进行一些处理。 我不确定如何索引单选框,然后单击该单选框内的单选按钮,因为有多个框。 有什么建议么?

class MyFrame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, "test", wx.DefaultPosition, wx.Size(900, 600))
        radio1Choices = ['F','G','P']
        # rb_list has 23 records -- basically used to set the distance b/w radio boxes
        for i in rb_list:
            self.radio1 = wx.RadioBox(scroll1, wx.ID_ANY, wx.EmptyString, (550,i), (20,5), radio1Choices, 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
            self.radio1.SetSelection( 0 )
            grid_sizer.Add( self.radio1, 0, wx.ALL, 5)

        # Bind the radio box select event to a function
        self.radio1.Bind( wx.EVT_RADIOBOX, self.on_selected )

    def on_selected(self, event):
        if self.radio1.GetStringSelection() == 'F':
            print "F"
        elif self.radio1.GetStringSelection() == 'G':
            print "G"
        else:
            self.radio1.GetStringSelection() == 'P'
            print "P"

将每个单选框附加到列表中,则只有您可以将每个单选框与其事件绑定

试试这个代码:

        self.radiobuttonlist=[]
        for i in range(0,len(lut_code)):
            rb += 40

            self.radiobuttonlist.append(wx.RadioBox(scroll1, wx.ID_ANY, wx.EmptyString, (550,rb), (30,5), radio1Choices, 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER))
            self.radiobuttonlist[-1].SetSelection(0)
            print self.radiobuttonlist[-1].GetId()
            self.Bind(wx.EVT_RADIOBOX,self.Getvalues,id=self.radiobuttonlist[-1].GetId())

            grid_sizer.Add(self.radiobuttonlist[-1], 0, wx.ALL, 5)

要获取选定的单选按钮值,请使用:

event.GetEventObject()。GetSelection()

试试这个代码:

def Getvalues(self,event):
        print event.GetEventObject().GetSelection()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM