多选框

多选框

 

 

#-*- coding: UTF-8 -*-
import wx

class CheckBox(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self,None,-1,u'多选框',size=(150,200))
        panel=wx.Panel(self,-1)
        wx.StaticText(panel,-1,u"喜欢的水果:",(10,10),(100,20))
        self.checkBox1=wx.CheckBox(panel,-1,u'苹果',(10,30),(100,20))
        self.checkBox2=wx.CheckBox(panel,-1,u'香蕉',(10,50),(100,20))
        self.checkBox3=wx.CheckBox(panel,-1,u'西瓜',(10,70),(100,20))
        self.checkBox4=wx.CheckBox(panel,-1,u'桔子',(10,90),(100,20))
        self.allCheckBox=wx.CheckBox(panel,-1,u'全选',(10,110),(100,20))
        self.selectFlag=True
        self.fruit=[]
        self.button=wx.Button(panel,-1,u'查看',(10,140),(100,50))
        self.Bind(wx.EVT_BUTTON,self.OnClick,self.button)
        for checkBox in [self.checkBox1,self.checkBox2,self.checkBox3,self.checkBox4]:
            self.Bind(wx.EVT_CHECKBOX,self.OnSelectSingle,checkBox)
        self.Bind(wx.EVT_CHECKBOX,self.OnSelect,self.allCheckBox)
    def OnSelectSingle(self,event):
        checkBoxSelected=event.GetEventObject()
        if checkBoxSelected.IsChecked():
            self.fruit.append(checkBoxSelected.GetLabelText())
        else:
            self.fruit.remove(checkBoxSelected.GetLabelText())
            self.selectFlag=not self.selectFlag

    def OnSelect(self,event):
        self.fruit=[]
        for checkBox in [self.checkBox1,self.checkBox2,self.checkBox3,self.checkBox4]:
            checkBox.SetValue(self.selectFlag)
        if self.allCheckBox.IsChecked():
            for checkBox in [self.checkBox1,self.checkBox2,self.checkBox3,self.checkBox4]:
                self.fruit.append(checkBox.GetLabelText())
                checkBox.Disable()
        else:
            for checkBox in [self.checkBox1,self.checkBox2,self.checkBox3,self.checkBox4]:
                checkBox.Enable()
            self.selectedFlag=not self.selectFlag

    def OnClick(self,event):
        str="".join(self.fruit)
        wx.MessageBox(str.encode("utf -8"),u"提示")

if __name__=="__main__":
    app=wx.PySimpleApp()
    CheckBox().Show()
    app.MainLoop()


你可能感兴趣的:(多选框)