Logo

郎哥编程

复选框控件

2019-07-15 617

复选框同列表框类似,也可以同时选择多个文本数据项。复选框包括一个小方框和一个文本标签,小方框用于表示该项是否被选中,当该项被选中时,小方框内会显示“√”,当该项未被选中时,小方框的内容为空白。文本标签用于表示该选项的内容。

 image.png                                            

与复选框控件相关的类是wx.CheckBox,wx.CheckBox的构造函数为:

CheckBox(parent, id=ID_ANY, label="", pos=DefaultPosition,
         size=DefaultSize, style=0, validator=DefaultValidator,
         name=CheckBoxNameStr)

其构造函数的参数说明如下:

parent:该控件的父窗口,可以是窗体对象,也可以是面板对象,类型是wx.Window。

id:控件标识符。使用-1可以自动创建一个唯一的标识,类型是wx.WindowID。

label:文本标签内容。

pos: 控件在父窗口的起始位置,类型是wx.Point。

size: 控件的宽度和高度,类型是wx.Size。

style:控件样式。

validator:窗口验证器。

name:控件的名称。

参数style设定了wx. CheckBox的输出样式,主要样式如下:

wx.CHK_2STATE: 创建一个具备2个状态的复选框。这是默认样式。

wx.CHK_3STATE: 创建一个具备3个状态的复选框。未在基于GTK+1.2构建的OS2和WXGTK中实现。

wx.CHK_ALLOW_3RD_STATE_FOR_USER: 默认情况下,用户不能将3状态复选框设置为第三状态。只能从代码中完成。使用此标志允许用户通过单击将复选框设置为第三状态。

wx.ALIGN_RIGHT: 使文本显示在复选框的左侧。

关于 wx. CheckBox的方法

wx.CheckBox类提供了一些方法用来操作复选框控件,下面列出了wx. CheckBox类提供的一些常用方法,更多方法请参见官方API文档。

https://docs.wxpython.org

IsChecked (self):如果该复选框被选中,返回True,否则返回False。返回类型为bool类型。

SetValue(self, state):将复选框设置为给定状态。state为bool类型,如果为True,复选框被选中,否则复选框未被选中。

关于wx.CheckBox的事件

wx. CheckBox可以发送以下类型的事件:

EVT_CHECKBOX: 用户单击复选框时发送该事件。

案例代码:

import wx
   
class CheckBoxSamleFrame(wx.Frame):
    def __init__(self, *args, **kw):
 
        # 调用父类的 __init__ 方法
        super(CheckBoxSamleFrame, self).__init__(*args, **kw)
       
        panel = wx.Panel(self, -1)
 
        checkBox1 = wx.CheckBox(panel, -1,'Python编程基础', (100, 50), (200, 60))
        # 设置为选中状态
        checkBox1.SetValue(True)
 
        checkBox2 = wx.CheckBox(panel, -1,'Java编程基础', (100, 100), (200, 60))
        # 设置为选中状态
        checkBox2.SetValue(False)
 
        # 绑定EVT_CHECKBOX事件
        self.Bind(wx.EVT_CHECKBOX, self.OnCheckBox1,checkBox1)
 
        # 绑定EVT_CHECKBOX事件
        self.Bind(wx.EVT_CHECKBOX, self.OnCheckBox2,checkBox2)
 
    #CheckBox选中事件处理方法 
    def OnCheckBox1(self,event):
          wx.MessageBox("您单击了Python编程基础")
 
    #CheckBox选中事件处理方法
    def OnCheckBox2(self,event):
          wx.MessageBox("您单击了Java编程基础")
                  
if __name__ == '__main__':
    app = wx.App()
    frame = CheckBoxSamleFrame(None, title='复选框控件')
    frame.Show()
    app.MainLoop()


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论