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

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-打印对话框和页面设置对话框(打印输出)
  请关注,评论,收藏,点赞,和转发。

兰州史话兰州的城门记忆对于我国古代城市而言,都是要建城墙的,城墙的修建取决于农耕文明的特性,这有别于游牧文明逐水草而居的生活方式,农耕文明以种植为业,安土重迁。兰州也是有城墙的,城墙随着城市的发展而不断群雄逐鹿,百度自动驾驶双足狂奔潮汐商业评论原创1925年,一辆名叫美国奇迹的钱德勒轿车在繁华的纽约曼哈顿第五大道行驶,这是关于自动驾驶最早的故事。尽管早期的无人驾驶并没有取得成功,却成功影响了彼时正青春的车企们面试官介绍一下Redis三种集群模式小码今天去面试。面试官给我介绍一下Redis集群,小码啊,平时开发用的都是单机Redis,没怎么用过集群了。面试官好的,出门右转不谢。小码内心困惑在小公司业务量也不大,单机的Red伊朗vs美国,就像火星撞地球?丨九派时评九派新闻特约评论员秦川比赛还未开踢,光是公布裁判就能上热搜,这种尊荣恐怕非伊朗vs美国莫属。北京时间11月30日凌晨3点,卡塔尔世界杯B组迎来第三轮的一场比赛伊朗vs美国。而在今天河南新县特色产业助增收火龙果园采摘忙11月25日,在河南省信阳市新县浒湾乡游围孜村百果汇火龙果采摘园内,金色的阳光透过大棚倾泻而下,绿意盎然的火龙果树整齐排列,红彤彤的果实缀满枝头,让人垂涎欲滴。这儿的火龙果果肉细腻永辉超市长期投资价值分析(报告节选)全面剖析基本面(本报告由大连估股科技有限公司版权所有。完整报告参考公司官方公众号估股)报告完整目录业务概述永辉超市成立于2001年,是中国大陆首批将生鲜农产品引入现代超市流通的企业。从主营业务构低门槛钱包钱包新一代范式,大众大规模采用Web3应用的必要工具核心结论1)现有助记词钱包的用户体验和安全性都远远达不到Web2的级别,使用助记词钱包的高门槛阻止了大量Web2用户进入Web3世界。低门槛钱包的使命就是解决此问题。2)低门槛钱包徐小明周三操作策略近期我对市场的主要判断是,空间就基本到达但时间没有到,走双头也就是M头的概率比较大。今天上证指数创新高了,速度很快,但大概率依旧是反弹,不要太乐观。符合双头的预期,也符合双头的特征美国宇航局预测,到2050年,海平面上升可能会淹没美国海岸线全球变暖是当前和今后很长时期,人类将要共同面临的一个严峻问题。美国目前已经单方面退出了巴黎气候协定,不再兑现一个超级大国理应对全人类做出的减排贡献,但这并不能阻挡美国本土的一些官方新魔法英语分级读物第9级别全新上市近期,在万众期待下,新魔法英语分级读物第9级别全新上线,该级别适合小学五六年级的孩子阅读和学习。共24册图书,其中故事类(包含2本戏剧)和非故事类各12册,还附赠一本自主阅读手册。69岁曾志伟再惹争议,与洪金宝儿媳贴脸合影,手放隐私部位遭批近日,女星姚乐怡在社交账号上晒出与曾志伟聚会合影,结果引起了不少网友的热议。照片中,69岁曾志伟将身旁两位异性亲昵地搂入怀中,右边是49岁姚乐怡,而左边是39岁港姐周家蔚,洪金宝的
疯了,这全球最大闹剧收不住了影视角度看热搜这几天,全球都在讨论一个话题美国最高法院推翻了罗诉韦德案裁决。意味着,女性的堕胎权不再得到宪法保护。其实早在5月初,网上就流出了相关草案。当时便激起大批民众的抗议。可大力发扬担当和斗争精神(深入学习贯彻习近平新时代中国特色社会主义思想)内容提要我们党能够不断战胜强大敌人和各种艰难险阻,不断取得伟大胜利和辉煌成就,靠的是一代代共产党人敢于担当英勇斗争。新征程上,只有大力发扬担当和斗争精神,才能实现中华民族伟大复兴的4天仅1银,美国队剩余夺金点几乎为零,或定格在17金被中国超越国际泳联世锦赛进入倒数第5个比赛日,目前冠军争夺点就在跳水公开水域游泳以及水球三大赛事了,接下来最大的看点就是金牌榜榜首争夺了,如今的榜首美国队能否守住第一名让人关注,就目前美国队台湾菠萝送日本孤儿院却发霉!台农委会甩锅是日本人干的中国台湾网6月30日讯据台湾媒体报道,去年台湾菠萝因为多次截获检疫性有害生物,大陆宣布暂停进口,民进党当局到处寻找冤大头订购,台南市日本人协会理事长野崎孝男订购了230公斤的台湾菠什么是中国共产党,中国共产党干什么又一个七月来临,中国共产党已经走过101个年头。历史犹如一条长长的时间河流,从过去奔涌而来向未来逐浪而去,洗炼那些深沉邃远的恒久叩问。站在过去与未来的交汇点上,习近平总书记谆谆告诫中国跳水一日包揽三金!难度系数修正,婵鸣组合加分中国青年报客户端北京6月30日电(中青报中青网记者慈鑫)北京时间今天凌晨,2022游泳世锦赛在匈牙利首都布达佩斯结束了跳水项目第四个比赛日的争夺。当天产生的跳水三枚金牌全部被中国队毛岸英牺牲后,刘思齐去看望毛主席,毛主席流着泪对她说了一句话1990年,在清理毛主席遗物时,中央警卫局发现了一批藏在箱底的衣物。一顶军帽一条毛巾两件衬衫与一双袜子,这些朴素甚至有些老旧的衣物被整整齐齐地叠放在一起。这让工作人员有些纳闷。因为印度不声不响开建第7艘神盾护卫舰,性能远超我国054A,值得警惕据美国海军新闻网站透露,印度海军第七搜P17A护卫舰近日在孟买马扎冈造船厂举行了铺设龙骨仪式,标志着印度最后一艘P17A护卫舰进入实质性建造阶段。自2019年首舰尼尔吉里(Nilg为了恶心英国,泽连斯基改口要停战,俄几枚导弹就让英国拿出10亿这是对英国首相约翰逊的重大羞辱关键时刻,泽连斯基改口要停战了就在美西方形势一片大好的时刻,泽连斯基一改之前强硬的态度,选择了对俄罗斯妥协,国际政治真的很精彩。最近这几天,随着北约峰德媒拜仁的游戏广告已没有莱万身影,穆勒占据C位直播吧6月30日讯据图片报报道,拜仁似乎已经开始接受莱万将离队的现实,在俱乐部最新的实况足球eFootball游戏宣传广告中,并没有这位波兰前锋的身影。拜仁与日本游戏公司科乐美延长太罕见!四大行一致出手3年期存款,竟然都比5年期高中国基金报记者江右实习生赵心怡一般来说,去银行存钱,存的期限越长,对应的年利率应该是越高,然而最近却出现了罕见的相反的现象。近日,不少储户发现,在银行存款3年期和5年期利率已经没有