如题,用wxpython做多选题界面,想设置全选或者全不选,我看官网上说的是用色图value,但是用了没反应
周末无聊,给题主写个Demo吧,仅供参考。
# -*- coding: utf-8 -*-
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'CheckBox Demo', size = (800,600))
self.checkbox1 = wx.CheckBox(self, -1, "选项A", (60,20), (200,20), name='A')
self.checkbox2 = wx.CheckBox(self, -1, "选项B", (60,40), (200,20), name='B')
self.checkbox3 = wx.CheckBox(self, -1, "选项C", (60,60), (200,20), name='C')
self.checkbox4 = wx.CheckBox(self, -1, "全选/全不选", (60,100), (200,20), name='ALL')
self.Bind(wx.EVT_CHECKBOX, self.on_check_box)
def on_check_box(self, evt):
obj = evt.GetEventObject()
name = obj.GetName()
if name in ('A', 'B', 'C'):
if obj.GetValue():
print('勾选了选项%s'%name)
else:
print('取消了选项%s'%name)
else:
v = obj.GetValue()
self.checkbox1.SetValue(v)
self.checkbox2.SetValue(v)
self.checkbox3.SetValue(v)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()