首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >wxpython中设置radiobox相关使用

wxpython中设置radiobox相关使用

作者头像
黯然销魂掌
发布2019-05-24 09:48:20
1.2K0
发布2019-05-24 09:48:20
举报
文章被收录于专栏:python爬虫日记python爬虫日记
#coding=utf-8

import wx

class MyFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self,None,-1,"Wxpython Radiobox 演示",size = (800,600))
        panel = wx.Panel(self)
        #第一种方法使用wx.RadioButton类
        #RadioButton(parent, id=ID_ANY, label=EmptyString, 
        #            pos=DefaultPosition, size=DefaultSize, style=0, validator=DefaultValidator, name=RadioButtonNameStr)
        self.check1 = wx.RadioButton(panel,-1,"Value1",pos = (50,20),style = wx.RB_GROUP)
        self.check2 = wx.RadioButton(panel, -1, "Value2", pos=(150,20))
        self.check3 = wx.RadioButton(panel, -1, "Value3", pos=(250,20))
        self.check1.Bind(wx.EVT_RADIOBUTTON,self.Event1)
        self.check2.Bind(wx.EVT_RADIOBUTTON,self.Event1)
        self.check3.Bind(wx.EVT_RADIOBUTTON,self.Event1)
        
        self.check4 = wx.RadioButton(panel, -1, "Value2-1", pos=(50,60), style=wx.RB_GROUP)
        self.check5 = wx.RadioButton(panel, -1, "Value2-2", pos=(150,60))
        self.check6 = wx.RadioButton(panel, -1, "Value2-3", pos=(250,60))
        self.check4.Bind(wx.EVT_RADIOBUTTON,self.Event2)
        self.check5.Bind(wx.EVT_RADIOBUTTON, self.Event2)
        self.check6.Bind(wx.EVT_RADIOBUTTON, self.Event2)
        
        
        #第二种方法使用wx.RadioBox类
        list3 = ["Value3-1","Value3-2" ,"Value3-3"]
        #RadioBox(parent, id=ID_ANY, label=EmptyString, pos=DefaultPosition, size=DefaultSize, 
        #         choices=[], majorDimension=0, style=RA_SPECIFY_COLS, validator=DefaultValidator, name=RadioBoxNameStr)               
        self.radiobox3 = wx.RadioBox(panel,-1,"测试3",pos=(50,100),choices=list3,style=wx.RA_SPECIFY_COLS)
        self.radiobox3.Bind(wx.EVT_RADIOBOX,self.Event3)
        
        list4 = ["Value4-1","Value4-2" ,"Value4-3"]
        self.radiobox4 = wx.RadioBox(panel, -1, "测试4",pos=(50, 180),choices=list4,  style=wx.RA_SPECIFY_ROWS)
        self.radiobox4.Bind(wx.EVT_RADIOBOX, self.Event4)
        
        #设定初始值,按序号进行选择,序号从0开始计数
        self.radiobox3.SetSelection(2)
        
        #方式2,设定初始值,通过文本进行选择
        self.radiobox4.SetSelection(self.radiobox4.FindString("Value4-3"))

    def Event1(self,event):
        print "测试1:",self.check1.GetLabel()

    def Event2(self,event):
        print "测试2:", self.check4.GetLabel()

    def Event3(self,event):
        #方式1获取选中项
        print "测试3:",self.radiobox3.GetStringSelection(),self.radiobox3.GetSelection()
        #方式2获取选中项,更灵活
        print "测试3.1",event.GetString(),event.GetInt()


    def Event4(self,event):
        print "测试4:",self.radiobox4.GetStringSelection()

if __name__ == "__main__":
    app = wx.App()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

不排版了,直接放代码,干货如下:

1、示范了两种写法,方法二更简单。

2、示范了如何在点击事件中获取 选中项

3、示范如何设置初始值,尤其是根据文本选中,折磨了我好长时间,在源码里猜出来的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档