纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

wxPython事件标识符

10月22日 赤雷榭投稿
  实战wxPython系列013
  在wxPython事件系统中,事件是通过标识来区分的,每个事件标识在其实就是一个独一无二的整数,常见的事件标识有窗口标识,标准标识以及定制事件标识等等。
  一、窗口标识符(Windowsids)
  在事件系统中,窗口标识符是唯一确定窗口标识的整数。有三种方法可以创建窗口标识符。让系统自动生成一个标志符;使用系统中定义的标志符;创建自己使用的标识符。wx。Button(parent,1)wx。Button(parent,wx。IDANY)
  在上面的语句中,我们将标志符参数设置为1或者wx。IDANY,则表示让wxPython系统为我们自动生成一个标志符。自动创建的标识符的值总是为负值,而用户自己指定的标志符则必须为正值。通常在我们不需要更改控件(widget)的状态时使用让系统自动生成一个标志符。比如,在应用程序生命周期内一直不需要更改的静态文本控件。但是,如果我们在需要获得控件的标志符的时候,可以使用方法GetId()来获得控件的标识符。
  下面的示例程序演示了如何让系统自动生成标志符,以及如何获得该标志符:窗口标识演示importwxclassSampleWindowsIds(wx。Frame):definit(self,args,kw):super(SampleWindowsIds,self)。init(args,kw)self。InitUi()defInitUi(self):panelwx。Panel(self)exitButtonwx。Button(panel,wx。IDANY,退出,(10,10))self。Bind(wx。EVTBUTTON,self。OnExit,idexitButton。GetId())self。SetTitle(实战wxPython:自动分配标识)self。Centre()defOnExit(self,e):self。Close()defmain():appwx。App()sampleSampleWindowsIds(None)sample。Show()app。MainLoop()ifnamemain:main()
  在上面的例子中,我们并不关心exitButton按钮具体的标志符值,在使用Bind方法self。Bind(wx。EVTBUTTON,self。OnExit,idexitButton。GetId())
  我们调用exitButton。GetId()方法,就可以自动获得该按钮的标志符值。
  图1:自动生成控件标志符演示
  二、wxPython中的标准标识符
  在wxPython系统中,包含一些标准标志符,比如wx。IDSAVE,wx。IDNew等等,下面的代码演示了如何使用标志标志符。标准标识演示importwxclassSampleStandardIdx(wx。Frame):definit(self,args,kw):super(SampleStandardIdx,self)。init(args,kw)self。InitUi()defInitUi(self):panelwx。Panel(self)gridwx。GridSizer(3,2,0,0)grid。AddMany(〔(wx。Button(panel,wx。IDCANCEL),0,wx。TOPwx。LEFT,9),(wx。Button(panel,wx。IDDELETE),0,wx。TOP,9),(wx。Button(panel,wx。IDSAVE),0,wx。LEFT,9),(wx。Button(panel,wx。IDEXIT)),(wx。Button(panel,wx。IDSTOP),0,wx。LEFT,9),(wx。Button(panel,wx。IDNEW))〕)self。Bind(wx。EVTBUTTON,self。OnQuitApp,idwx。IDEXIT)panel。SetSizer(grid)self。SetTitle(实战wxPython:标准标识)self。Centre()defOnQuitApp(self,e):self。Close()defmain():appwx。App()sampleSampleStandardIdx(None)sample。Show()app。MainLoop()ifnamemain:main()
  在上面的示例代码中,我们使用一些标准按钮标志符,如果在Linux系统中运行,则会自动添加相应的图标在这些按钮上。grid。AddMany(〔(wx。Button(pnl,wx。IDCANCEL),0,wx。TOPwx。LEFT,9),(wx。Button(pnl,wx。IDDELETE),0,wx。TOP,9),(wx。Button(pnl,wx。IDSAVE),0,wx。LEFT,9),(wx。Button(pnl,wx。IDEXIT)),(wx。Button(pnl,wx。IDSTOP),0,wx。LEFT,9),(wx。Button(pnl,wx。IDNEW))〕)
  在网格调节器上上,我们添加了六个按钮,它们使用了六个标准标志符wx。IDCANCEL,wx。IDDELETE,wx。IDSAVE,wx。IDEXIT,wx。IDSTOP和wx。IDNew。
  在Windows系统下,运行结果如图2所示:
  图2:标准标志符演示
  在wxPython系统中,建议在可能的情况下,使用标准标识符,因为这些标准标志符可以在某些平台上提供一些标准的图形或者行为。
  三、自定义事件标识符
  下面的代码演示如何使用自定义事件标志符:自定义标识符importwxIDMENUNEWwx。NewId()IDMENUOPENwx。NewId()IDMENUSAVEwx。NewId()classSampleCustomIds(wx。Frame):definit(self,args,kw):super(SampleCustomIds,self)。init(args,kw)self。InitUi()defInitUi(self):self。CreateMenuBar()self。CreateStatusBar()self。SetSize(350,250)self。SetTitle(实战wxPython:自定义标识)self。Centre()defCreateMenuBar(self):mbarwx。MenuBar()fMenuwx。Menu()fMenu。Append(IDMENUNEW,新建)fMenu。Append(IDMENUOPEN,打开)fMenu。Append(IDMENUSAVE,保存)mbar。Append(fMenu,文件(F))self。SetMenuBar(mbar)self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUNEW)self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUOPEN)self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUSAVE)defDisplayMessage(self,e):sbarself。GetStatusBar()eide。GetId()ifeidIDMENUNEW:msg新建菜单项被选择elifeidIDMENUOPEN:msg打开菜单项被选择elifeidIDMENUSAVE:msg保存菜单项被选择sbar。SetStatusText(msg)defmain():appwx。App()sampleSampleCustomIds(None)sample。Show()app。MainLoop()ifnamemain:main()
  在上述示例代码中,创建了一个包括单个菜单项的菜单,菜单项的标志符通过代码IDMENUNEWwx。NewId()IDMENUOPENwx。NewId()IDMENUSAVEwx。NewId()
  创建,方法wx。NewId()可创建一个新的独一无二的标志符。self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUNEW)self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUOPEN)self。Bind(wx。EVTMENU,self。DisplayMessage,idIDMENUSAVE)
  在进行事件绑定的时候,使用了各自的标志符。eide。GetId()ifeidIDMENUNEW:msgNewmenuitemselectedelifeidIDMENUOPEN:msgOpenmenuitemselectedelifeidIDMENUSAVE:msgSavemenuitemselected
  在事件处理方法DisplayMessage中通过GetId()函数获得被点击菜单项的标识符值,通过判断该值,就可以确定当前被点击的菜单项,然后显示相应的信息。
  图3:自定义标志符演示
  四、本文知识点什么是事件标志符及其在事件系统中的作用;使用自动生成标志符;使用系统标准标识符;使用自定义标志符。
  前一篇:wxPython事件绑定及传播
  请多多关注,评论,收藏,点赞,和转发。
投诉 评论 转载

看了18年NBA火箭队如今麻了0405赛季是我第一次看火箭的比赛,0506赛季开始疯狂沉迷,只要有时间都会看火箭的比赛,每周都订阅篮球先锋报,那时候记得是两块钱一份,关注火箭的每一条消息。那一年的首发……中国队太多错误!意媒点评中意女排之战埃格努恶魔附体2022年世界女排联赛总决赛八强战,中国女排13不敌意大利队,无缘四强。包括《米兰体育报》在内的多家意大利媒体都点评了本场比赛,称赞拿到36分的埃格努是超级埃格努,并指出中国队……刘建宏中国足球从业者把足球当成赚钱工具,进国家队要明码实价以前分析过,中国足球的落后,绝不仅仅是因为球员们技不如人,教练水平有限那么简单。即使是土帅李铁、李霄鹏执教水平有限,那么高洪波呢?世界名帅里皮呢?除了神奇教练米卢能玩转中国男足……满江红了解十大细节,说明你看过这部电影!1。瑶琴头上的花,身份没暴露的时候是艳红的,暴露之后就是枯萎的2。张大死的时候,刚好是开场两个小时,对应着秦桧说的一个时辰斩3。秦检去牢房的时候只带一个聋哑侍女,因……孩子吃饭必喝水?看似胃口好实则藏隐患,3种情况喝水都要有讲究水是生命的源泉,在人体的构成中,水占据了百分之七十左右,可见水对于人体的重要性。人类每天都要摄入一定量的水,这样才能保持身体的健康。养育孩子的过程中,需要家长全心全意照顾……wxPython事件标识符实战wxPython系列013在wxPython事件系统中,事件是通过标识来区分的,每个事件标识在其实就是一个独一无二的整数,常见的事件标识有窗口标识,标准标识以及定制事……恭喜宏远!CBA最强外援组正式示好广东,朱芳雨为签2人放弃高本赛季CBA所有的比赛都已经结束了一段时间,这个窗口期将是多支球队进行引援的最佳时机。尤其是上赛季惨遭卫冕冠军辽宁队半决赛淘汰出局的广东队,被不少球迷看好在这个休赛期会签下强援……艾灸的力量,疏通人体的中央枢纽,此处通,路路通何为富贵包,所谓富贵包是一种体态不良的俗称,也就是在我们颈椎下面有凸出来的硬块,其实富贵包越大往往越严重,证明此处的经络不通,即中央枢纽的不通,那么借助艾火之力可以消除富贵包吗……SNKRGirls丨治愈的笑魔鬼的身材?夏天的球鞋女生就是如注意!注意!注意!上期得奖的SNKRGirls要揭晓了!谨记不要盗图来投稿哦!请勿进行刷票或盗图投稿行为,否则将取消得奖资格把名次顺延,请保持诚实……火箭青年手绘中国人太空建房全过程中国青年报客户端北京11月30日电(董佳莹金石开中青报中青网记者邱晨辉)北京时间11月29日23时08分,长征二号F遥十五运载火箭在酒泉卫星发射中心点火起飞,成功发射载有3名航……美丽的格桑花在祖国的蓝天下竞相绽放大千世界,林林总总的花花草草,我独爱格桑花!格桑为藏语,意即美好时光之意。传说在一般在春夏之交的雪域高原上,每年都会有一个璀璨的好季节。在这个季节里,风姿绰约的八瓣格桑花……若你脸上有这3种标志,年纪越大会越吃香!不仅抗老还有气质脸型的状态可以说是绝对决定颜值走向的最关键元素,尤其是在脸部上存在一些非常具有优势的特征,如果你的脸上有这3种标志,在年龄方面的增长上是会越大越会吃香的效果优势哦。今天就……
21世纪NBA篮下攻坚的4个段位姚明大师,兰多夫宗师,王者无小米22年四大类12款新机一览,Xiaomi12Ultra配维生素C你真的懂我?原创散文儿时的过年好像就是大家以猪脑壳为中心印尼羽毛球大师赛王祉怡无缘决赛一直一直很喜欢你阿根廷公布世界杯26人大名单!梅西距球王的最后一步南京夫子庙花灯璀璨闹元宵广州黄埔古村游南湾水乡,广州周庄古韵悠悠iQOO11新机开始惊艳曝光,iQOO9感人价悲惨让路致敬新王健林直言,负债是万达不是他的,如果需要随时可套现1千多亿世人贪婪总想寻找两全诺基亚N9如何共享照片乡镇水利站改革的调查报告男女怎么看待一夜情图竞选学委上海股东变更流程是怎么样的?馆员素质对高校图书馆发展的影响利用好分钟线既可以让你稳赚买入股票小米杀疯了70英寸巨幕价格2269元维生素E护肤使用方法5种维素生E的保养方法CBA三消息王哲林太憋屈,山东队10人轮换太罕见,葛昭宝MV金瀚是怎么搞到这么多主角资源的?君九龄还没弃剧?常见励志经典句子

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形