龙空技术网

第14天 | 25天学会wxPython,复选和单选按钮

老陈说编程 539

前言:

当前姐妹们对“python复选框”大概比较注意,朋友们都想要了解一些“python复选框”的相关知识。那么小编也在网上汇集了一些有关“python复选框””的相关资讯,希望各位老铁们能喜欢,我们快快来学习一下吧!

复选框wx.CheckBox,是一个带有文本标签的开关按钮。复选框通常成组的方式显示,但是每个复选框的开关状态是相互独立的。当你有一个或多个需要明确的开关状态的选项时,可以使用复选框。

单选按钮wx.RadioButton,是一种允许用户从几个选项中选择其一的窗口组件。与复选框不同,单选按钮是显式地成组配置,并且只能选择其中一个选项。当选择了新的选项时,上次的选择就还原了。

程序清单:check_radiao.py

import wx# 继承Frameclass CheckAndRadio(wx.Frame):    def __init__(self, *args, **kwargs):        super(CheckAndRadio, self).__init__(*args, **kwargs)        # 初始化窗口UI        self.init_ui()    def init_ui(self):        # 面板        panel = wx.Panel(self)        # 单个复选框        checkbox1 = wx.CheckBox(panel, id=wx.ID_ANY,                                label="画画", pos=(20, 20))        checkbox2 = wx.CheckBox(panel, id=wx.ID_ANY,                                label="游泳", pos=(80, 20))        self.Bind(wx.EVT_CHECKBOX, self.check, checkbox1)        self.Bind(wx.EVT_CHECKBOX, self.check, checkbox2)        # 多个复选框        check_list_box = wx.CheckListBox(panel, id=wx.ID_ANY,                                         choices=["跳舞", "放羊", "吹牛"],                                         pos=(20, 50), size=(150, -1))        self.Bind(wx.EVT_CHECKLISTBOX, self.check_list, check_list_box)        # 单个单选按钮        radiobutton1 = wx.RadioButton(panel, id=wx.ID_ANY,                                      label="男性", pos=(20, 125))        radiobutton2 = wx.RadioButton(panel, id=wx.ID_ANY,                                      label="女性", pos=(80, 125))        self.Bind(wx.EVT_RADIOBUTTON, self.radio, radiobutton1)        self.Bind(wx.EVT_RADIOBUTTON, self.radio, radiobutton2)        # 单选按钮组        radio_box = wx.RadioBox(panel, id=wx.ID_ANY,                                choices=["你牛", "我牛", "他牛"],                                 pos=(20, 150))        self.Bind(wx.EVT_RADIOBOX, self.radio_list, radio_box)        self.SetSize(900, 500)        self.SetTitle("复选框和单选按钮的应用")        self.Centre()        self.Show(True)    def check(self, e):        print(e.GetId(), e.IsChecked())    def check_list(self, e):        obj = e.GetEventObject()        # 选中列表的下标(从0开始)        checked_list = obj.GetCheckedItems()        print(checked_list)    # 单选结果    def radio(self, e):        radio_button = e.GetEventObject()        # 选中列表的下标(从0开始)        result = radio_button.GetLabel()        print(result)    # 多个单选    def radio_list(self, e):        radio_list = e.GetEventObject()        # 选中单选按钮的下标(从0开始)        index = radio_list.GetSelection()        print(index)def main():    app = wx.App(False)    CheckAndRadio(None)    app.MainLoop()if __name__ == "__main__":    main()

运行程序之后,弹出的窗口如下:

创建单个复选框,用wx.CheckBox组件。在绑定wx.EVT_CHECKBOX事件之后,判断是否选中,可用CommandEvent对象的IsChecked()方法,也可用GetEventObject()方法得到CheckBox对象之后,再用IsChecked()方法进行判断,区别不同的组件,用GetId()方法即可。

同时创建多个复选项,用wx.CheckListBox()组件,选项(列表)内容在choices属性中指定。绑定wx.EVT_CHECKLISTBOX事件和处理函数,用CheckListBox的对象方法GetCheckedItems()获取被选中的列表(下标)。

创建单个单选按钮用wx.RadioButton()组件,在wxPython中,生成的多个单选组件会有自动互斥效果。绑定wx.EVT_RADIOBUTTON事件和处理函数,判断选中那个单选按钮用GetId()方法或者用GetLabel()直接获得文本内容。

创建单选按钮组,用wx.RadioBox()组件。绑定wx.EVT_RADIOBOX事件和处理函数,判断选择那个单选按钮,用RadioBox对象的GetSelection()获得选中下标。

好了,复选和单选按钮就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##热搜##头条#

标签: #python复选框