wxpython中CheckBox setvalue()设置全选或者全不选

如题,用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()  

 

参考:https://www.cnblogs.com/qiangayz/p/8598503.html