#-*- coding:utf8 -*-
#这是一个多选框的设定
import wx
class CheckBox(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self,None, -1, u"多选框",size=(200, 180))
panel = wx.Panel(self, -1)
wx.StaticText(panel, -1, u"你喜欢的水果",(10,10),(100, 20))
self.appleCheck = wx.CheckBox(panel, -1, u"苹果", (10,30), (100,20))
self.bananaCheck = wx.CheckBox(panel, -1, u"香蕉", (10,50), (100,20))
self.melonCheck = wx.CheckBox(panel, -1, u"西瓜", (10,70), (100,20))
self.allCheckBox = wx.CheckBox(panel, -1, u"全选", (10, 110), (100,20))
self.testBtn = wx.Button(panel, -1, u"确定", (10,140), (100, 20))
self.Bind(wx.EVT_BUTTON, self.OnClick, self.testBtn)
self.selectAll = True #表示是否全选
self.fruits = [] #数据的保存 利用全局变量
for checkBox in [self.appleCheck,self.bananaCheck,self.melonCheck]:
self.Bind(wx.EVT_CHECKBOX, self.OnSelectSingle, checkBox)
self.Bind(wx.EVT_CHECKBOX, self.OnSelect, self.allCheckBox)
def OnSelectSingle(self, event):
checkBox = event.GetEventObject()
if checkBox.IsChecked():
self.fruits.append(checkBox.GetLabelText())
else:
self.fruits.remove(checkBox.GetLabelText())
self.selectAll = not self.selectAll #如果数据减少的话 必须为非全选状态
def OnSelect(self, event):
self.fruits = [] #保证里面的数据为空
if self.allCheckBox.IsChecked():
for eachCheck in [self.appleCheck, self.bananaCheck, self.melonCheck]:
self.fruits.append(eachCheck.GetLabelText())
eachCheck.Disable()
else:
for eachCheck in [self.appleCheck, self.bananaCheck, self.melonCheck]:
eachCheck.Enable()
self.selectAll = not self.selectAll #去相反的
def OnClick(self, event):
fruitString = ",".join(self.fruits)
wx.MessageBox(fruitString.encode("UTF-8"),u"提示") #进行数据的打印
class MyApp(wx.App):
def OnInit(self):
self.frame = CheckBox(None)
self.frame.Show()
return True
app = MyApp()
app.MainLoop()
#!/usr/bin/python
#-*- coding:utf8 -*-
import wx
class RadioButton(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self,root, -1,u"单选按钮",size=(200, 200))
panel = wx.Panel(self, -1)
radioApple = wx.RadioButton(panel, -1, u"苹果",pos=(10,10))
radioBanana = wx.RadioButton(panel, -1, u"香蕉", pos=(10, 40))
radioPear = wx.RadioButton(panel,-1, u"梨子", pos=(10, 70))
self.textColor = wx.TextCtrl(panel, -1, "苹果", pos=(80,10))
for eachRadio in [radioApple, radioBanana, radioPear]:
self.Bind(wx.EVT_RADIOBUTTON, self.OnSelect, eachRadio)
def OnSelect(self, event):
selectRadio = event.GetEventObject()
string = selectRadio.GetLabel()
self.textColor.SetValue(string)
class RadioBox(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, None, -1, u"单选按钮", size=(320, 150))
panel = wx.Panel(self, -1)
colors = [u"红", u"黄", u"蓝", u"绿", u"青", u"白", u"紫"]
wx.RadioBox(panel, -1, u"颜色",(10,10), wx.DefaultSize, colors, 4, wx.RA_SPECIFY_COLS)
wx.RadioBox(panel, -1, u"颜色", (180, 10), wx.DefaultSize, colors, 3, wx.RA_SPECIFY_ROWS)
class MyApp(wx.App):
def OnInit(self):
self.frame = RadioBox(None)
self.frame.Show()
return True
app = MyApp()
app.MainLoop()
#以上介绍了CheckBox和Radioutton的使用方法
QQ交流群: 204944806