范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

wxPython查找替换对话框FindReplaceDialog

  实战wxPython系列-025
  在进行文本处理的GUI程序中,常常需要对文本中的一些文字进行查找和(或)替换操作,在这种情况下,就需要一个具有查找替换功能的对话框来交互完成需要的功能,在wxPython提供的类wx.FindReplaceDialog可以快速方便地实现这个功能。
  一、wx. FindReplaceDialog
  wx.FindReplaceDialog是一个标准的无模式对话框,用于允许用户搜索某些文本(并可能将其替换为其他文本)。
  实际的搜索应该在所wx.FindReplaceDialog的父窗口中完成。注意,这意味着与其他标准对话框不同,这个对话框必须有一个父窗口。还要注意,没有办法以模式对话框的方式使用这个对话框;在设计和实现上,它总是无模式的。
  wx.FindReplaceDialog构造函数原型:
  wx.FindReplaceDialog(parent, data, title, style)
  参数:
  parent:父窗口
  data:保存wx.FindReplaceDialog的数据,该数据类型为wx.FindReplaceData。
  title:对话框标题栏。
  style:对话框的样式。
  wx.FindReplaceDialog常用方法:GetData ( self ):得到对话框使用的 wx.FindReplaceData对象。
  图1:wx.FindReplaceDialog类继承关系
  二、wx.FindReplaceData
  wx.FindReplaceData保存wx.FindReplaceDialog的数据。它作为默认值初始化wx.FindReplaceDialog的初始值,在最关闭对话框时保存对话框最新的数据。对话框每次都会更新wx.FindDialogEvent事件,因此,我们可以使用wx.FindDialogEvent事件绑定的方法来值得查询 wx.FindReplaceData对象。GetFindString ( self ):获得要查找的字符串。 GetFlags ( self ):获取FindReplaceFlags值的组合。 GetReplaceString ( self ):获得要替换的字符串。 SetFindString ( self ,  str ):设置要查找的字符串(对话框将其用作初始值)。 SetFlags ( self ,  flags ):设置用于初始化对话框控件的标志。 SetReplaceString ( self ,  str ):设置替换字符串(作为对话框的初始值)。
  三、wx.FindReplaceDialog演示
  下面的代码演示了如何使用wx.FindReplaceDialog。#查找替换对话框(wx.FindReplaceDialog)  import wx  class SampleFindReplaceDialog(wx.Frame):      def __init__(self, *args, **kw):         super(SampleFindReplaceDialog, self).__init__(*args, **kw)          self.InitUi()      def InitUi(self):         #设置标题         self.SetTitle("实战wxPython: FindReplaceDialog演示")         #设置窗口尺寸         self.SetSize(480, 360)          info = """         We’ve trained a model called ChatGPT which interacts in a          conversational way. The dialogue format makes it possible          for ChatGPT to answer followup questions, admit its          mistakes, challenge incorrect premises, and reject          inappropriate requests. ChatGPT is a sibling model to          InstructGPT, which is trained to follow an instruction          in a prompt and provide a detailed response.         """          #创建文本编辑框         self.tc = wx.TextCtrl(self, wx.ID_ANY, info, style=wx.TE_MULTILINE|wx.TE_RICH2)         self.btnFind = wx.Button(self, wx.ID_ANY, "查找")                  self.Bind(wx.EVT_BUTTON, self.OnButton, self.btnFind)         self.Bind(wx.EVT_FIND, self.OnFind)         self.Bind(wx.EVT_FIND_NEXT, self.OnFind)          self.pos = 0         self.size = 0          sizer = wx.BoxSizer(wx.VERTICAL)         sizer.Add(self.tc, 1, wx.EXPAND, 0)         sizer.Add(self.btnFind, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)          self.SetSizer(sizer)         #sizer.Fit(self)         #self.Layout()          self.Centre()      def OnButton(self, e):         self.txt = self.tc.GetValue()         #初始化并保存搜索参数         self.data = wx.FindReplaceData()         #创建查找对话框并显示         self.dlg = wx.FindReplaceDialog(self.tc, self.data, "查找")         self.dlg.Show()      def OnFind(self, e):         #要查找的字符串         fString = self.data.GetFindString()         #字符串长度         self.size = len(fString)         #查找到的位置         self.pos = self.txt.find(fString, self.pos)         #将查找到的字符串设置为黑底红字         self.tc.SetStyle(self.pos, self.pos + self.size, wx.TextAttr("red", "black"))         #下次开始查找的位置         self.pos += self.size  def main():     app = wx.App()     sample = SampleFindReplaceDialog(None)     sample.Show()     app.MainLoop()  if __name__ == "__main__":     main()
  在上述代码中,我们创建了一个wx.TextCtrl文本编辑对话框,并添加了一些文字内容,在点击"查找下一个"按钮后,已该文本编辑对话框为父窗口,创建一个wx.FindReplaceDialog对话框来来执行查找, 当查找内容不为空时,点查找,将发出wx.EVT_FIND事件,之后查找将发出wx.EVT_FIND_NEXT事件,这两个事件都由OnFind方法来处理。
  运行上述代码,点击"查找"按钮, 弹出查找对话框,在文本框中输入"ChatGPT"并按回车键,这时"查找下一个"按钮将激活,点击该按钮,就可以进行查找工作,每查找到一个"ChatGPT"字符串,就将其设置为黑白红字样式。运行结果如图2所示。
  图2:wx.FindReplaceDialog演示
  四、本文知识点了解wx .FindReplaceDialog。使用wx .FindReplaceDialog进行文本查找。
  前一篇:wxPython-打印对话框和页面设置对话框(打印输出)
  请关注,评论,收藏,点赞,和转发。

曾经的亚洲四小龙哪些经验值得我们学习?亚洲四小龙,是指自20世纪60年代末至90年代期间,亚洲四个发展迅速的经济体韩国中国台湾地区中国香港地区和新加坡。那么使得亚洲四小龙的经济腾飞的几大关键因素有哪些呢?一首先外部世界外媒英国财政大臣称不得不增税以恢复经济据新加坡联合早报网站14日报道,英国财政大臣亨特13日说,他将提高税收并削减开支,以显示英国能够修复公共财政,并恢复经济信誉。但他也表明,较贫困的家庭应免于承受大部分痛苦,称公共服健康观察喝红酒真的对人的身体健康有益吗?现今每年有数百万人死于好酒贪杯,但人类饮酒之历史已有几千年。而在过去的几十年里,特别是葡萄酒,还赢得了有益于我们身体健康的美誉。红酒甚至被认为能帮助我们延年益寿,降低患心脏病的风险补嘴空有讲究?建议大家多吃冬令5宝,顺应时节营养足天气变冷,大部分树木的叶子都变黄枯萎,甚至还有些动物开始漫长的冬眠。为抵御低温与寒风的侵袭,我们需要在初冬对身体进行调养,最不容忽视的就是饮食方面。而古人很早就明白这个道理,因此许她是中国科举历史上唯一的女状元,才貌双全,却最终沦为玩物在男尊女卑的封建社会,女性从小被冠以女子无才便是德的教育理念,因此我国历史上鲜有女子在政绩上有所作为,仅有屈指可数的几位女性在岁月流逝的长河中大放光彩。(此处已添加小程序,请到今日处于四战之地的瑞士为什么能成为中立国?中国为什么不能?日内瓦是瑞士的第二大城市,这里不但签署了影响了世界格局的日内瓦公约,而且还驻扎着国际红十字会世界贸易组织世界卫生组织世界气象组织等众多国际组织。那么大家有没有考虑过这里为什么会如此OceanBase社区版4。0让企业使用门槛再降,中国数据库将迎大爆发?数据库为企业带来了什么?降本增效是最直接的体现,如OceanBase助力云南红塔银行系统整体成本降低了90,处理能力也由原来每秒钟200TPS提升到每秒钟8000TPS稳定支撑GC北京通州印发先进制造业行动计划医药健康将成最大战略引擎产业本报记者余燕明北京报道日前,北京市通州区印发了城市副中心先进制造业三年行动计划(20222024年)(以下简称计划),将提升科技创新功能,抓住制造业数字化智能化绿色化融合化发展机遇专家观点红色根脉的本质内涵和时代使命习近平总书记强调上海党的一大会址嘉兴南湖红船是我们党梦想起航的地方。我们党从这里诞生,从这里出征,从这里走向全国执政。这里是我们党的根脉。中国共产党在浙江的百年奋斗历程,波澜壮阔辉痛经假来了?专家有必要,严重痛经要引起重视11月14日,深圳痛经假经确诊可休1到2天再次引发网友热议。广东省深圳市人社局明确女职工保健工作规定对生理假有明确规定,患有重度痛经及月经过多的女职工,经医疗或妇幼保健机构确诊后,早餐吃不对,也会危害健康!提醒这3种早餐,不建议经常吃都说早餐要吃好,午餐要吃饱,晚餐要吃少可见一日三餐中,吃早餐有多重要,那么早餐到底吃什么最好?一直以来早餐吃粥养胃的说法,到底对不对?01hr早餐喝粥引争议早起喝一碗热粥,暖心又暖
NASA分享火星冬天航拍照片,火星冬天长什么样?科幻网12月29日讯近日,NASA利用火星勘测轨道飞行器拍摄了多张火星这颗红色星球在冬季的样子,照片非常惊艳。轨道飞行器还捕获了火星表面结霜的陨石坑和冻土形成的多边形图案,火星表面漫步伊斯坦布尔,在咖啡香与水烟雾中品味历史伊斯坦布尔住着土耳其近两成约1,546万人口,新冠疫情之前更是每年迎接高达近1,500万名游客造访,魅力难以用言语形容。没有一张照片一个地方,能够代表伊斯坦布尔。正是对这座城市陈腔梧桐树下,漫步东方的香榭丽舍大街,感受历史建筑带来的厚重与静谧摘要衡山路上有365株悬铃木,堪称黄金通道,是风靡上海的酒吧一条街,街边不乏酒吧茶坊酒店餐馆画廊等小店。衡山路是首批被命名为上海市林荫道的道路之一,共有365株悬铃木,俗称梧桐树。行走河南读懂中国汝州曼妙冬韵城市内外灵动多彩来源河南省文化和旅游厅媒体互连城市发展蒸蒸日上。王志斌摄蓝天落日色彩斑斓的景致冬日的平顶山市汝州市,无论是城市还是乡野,风光无限好。冬深时节,漫步中央公园汝河湿地公园等处,让人心旷浮云境,三重山青岛市浮山森林公园丨MLA浮云境,三重山构建山系特质与公园特质并存的山海中央公园2022年10月,MLA与合作伙伴蕾奥参与了青岛市浮山森林公园文旅策划及整治规划方案征集,并获得了第二名的好成绩。竞赛要求在尊促进乡村振兴,代表建议加大力度扶持乡村旅游发展广州两会这段时间,广州乡村的烟火气正在快速恢复。广州市人大代表广州长洲岛都市农业产业园有限公司董事长宋俊文在2023年广州两会上分享了他在促进乡村振兴,扶持乡村旅游发展方面的思考和建议。都1422亿总负债悬顶,元旦前夕违约,广州旧改王顶不住了?唏嘘!苦苦煎熬了一年多的时代中国,最终却还是走到了暴雷的地步。12月30日,时代中国发布公告,称自2021年下半年以来,中国物业市场的合同销售及流动资金状况转差,集团未能不受此趋势这几天青岛泊里大集画风突变别让几只螃蟹毁了一个百年大集提起青岛,外地的朋友首先会想到什么?红瓦绿树,碧海蓝天?还是栈桥崂山,啤酒海鲜?以上都是老皇历了,随着短视频平台的崛起,青岛一个以前并不太知名的地方一夜崛起,成为一个巨大的流量宝矿湖人大战国王!威少攻传一体拖布稳健施罗德又爆发1月8日,NBA常规赛继续进行,湖人队对阵国王队。比赛开始后两队都全力输出,因此比分交替上升,首节几乎打个平手,湖人3738落后国王。次节两队陷入鏖战,湖人队从落后到追平比分,半场东契奇35分12篮板13助攻,独行侠大胜火箭在今日的常规赛中,独行侠主场129114大胜火箭。东契奇连得5分,独行侠72领先。杰伦格林回应三分后小哈达威三分也中,波特申京各得分后伍德三分也进小哈达威连续得分,东契奇也连续得分大美中国生态美景迎客来游客在北京颐和园昆明湖滑冰场感受滑冰乐趣。元旦过后,北京各大公园陆续开展冬季冰雪游园活动,众多的游乐项目满足游客不同需求。张子魁摄(中经视觉)位于内蒙古兴安盟阿尔山市的特色雪村,厚