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

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

华为之后再无对手?苹果全球份额占比62根据数据机构CounterpointResearch的数据,苹果全球市场份额占比达到了62,较去年同期增长5,而华为较去年同期下降6。CounterpointResearch强调,印上库里卖球衣,耐克含泪赚钱!若当初重视些,还有安德玛什么事刚刚过去的这个赛季,勇士在库里的带领下,阔别4年重新登顶,夺得了队史第七座总冠军奖杯,而球队核心库里也凭借在总决赛的出色发挥,赢得了自己职业生涯第一座FMVP奖杯,让自己的历史地位出圈世界!激光显示技术又一张中国科技新名片从过去漫长的徒步苦旅到今天的高速铁路,中国通过科技创新,以现代文明的方式缩小了交流沟通的时空差异。如今,中国科技又有了一张新名片。短短不到两个月时间,这张新名片已在三个全球性活动大去哪看武磊!西甲官方宣布中止国内转播权近日,西甲官方宣布,由于欠款,提前中断与中国区域转播合作事宜,新赛季的西甲联赛,在中国国内将看不到西甲和武磊的比赛,只能看集锦了。刚刚晋升为球队队长的武磊,新赛季意气风发,踌躇满志男子支付宝46万元资金无法取出官方回应6月22日消息,支付宝安全中心官微今日发布了一则声明,对男子46万元资金在账户中无法取出进行了说明。支付宝提到,根据举报信息和平台风险系统识别,该男子的账户交易行为存在异常情形,需游泳世锦赛中国队女子4x200米自由泳接力获得第四名新华社布达佩斯6月22日电(记者刘旸陈浩)22日晚,国际泳联第19届世界游泳锦标赛女子4x200米自由泳接力决赛中,中国队以7分45秒72的成绩获得第四名。美国队刷新世锦赛纪录并夺交出京东权力后,刘强东学起了马云文科技君交出京东权力后,刘强东学起了马云!今年4月份,刘强东交出京东权力,不再担任京东CEO职务,新的CEO是徐雷。需要注意的是,虽然是今年4月份才正式交出权力,但实际上自从美国女货币战升级!美国加速收割中国?中国抛售美债!人民币汇率稳吗?很多人不知道,货币战争依然在亚洲持续肆虐。日元大贬值,韩元大贬值,菲律宾货币暴跌!而受到拖累的中国人民币汇率也受到了一定影响。东南亚货币战争,已经打响而随着昨晚美联储主席鲍威尔的一女排迎来黑马喜讯,1米98得分王将伤愈复出,陈忠和也有望再夺冠女排1米98顶级得分王正式锁定出战时间,而1米92的00后天才更是有望帮助女排重新反超日本美国队冲冠,顶级的功勋教练更是被呼之欲出,有望重新出山领女排冲冠。谈到1米98的朱婷,她就又调整了?中国女排最新合照被曝光,蔡斌或摆出一套全新阵容北京时间6月23日,女排新一届世界联赛已结束前两周的争夺,中国女排的姑娘们也已从菲律宾奎松出发前往保加利亚索菲亚,为第三周的比赛提前做好准备。刚刚经历了两连败之后,姑娘们的信心也受替代智能手机?新技术或将很快出现,比尔盖茨已做出创新观看文章前有这么一个小问题智能手机还能够满足你吗?假如有东西能够替代智能手机你会想到什么?目前已经出现能够短暂替代智能手机的物品,如智能手表,我们所常知道的AppleWatch就能
打造核心竞争力辛选创始人辛巴构建多维度品控体系近年来,直播电商火热依旧,但用户的关注点已经从主播转移到产品本身,这使得直播电商企业愈发重视产品品质,各家企业纷纷投入升级品质管理体系的队伍之中。在一众直播电商企业中,辛选集团创始电商一哥易趣网关停,比淘宝早4年,周杰伦在上面拍卖过曾吸引周杰伦张娜拉蔡琳等明星在网站上卖物品的中国第一家电商平台易趣网,近日在官网公告称,由于公司运营策略调整,将于8月12日正式关停网站,提醒用户在此之前退回网上余额。1999年,油价或将调整消息跌幅再度下降!明天油价全面下跌,92号汽限价今日油价调整消息又到了7月25日周一,上周伊始国际原油价格暴跌,国内原油指数下跌幅度也是创今年以来新高,而一周过去后原油指数每日都小幅度回调,导致原本准备7月26日下调0。5元每升拿铁DHTPHEV上市,李瑞峰高调发言难掩魏牌困境编辑导语随着魏牌旗下拿铁DHTPHEV车型正式上市,魏牌CEO李瑞峰高调发言魏牌智能DHT混联技术是全球最好的新能源技术。频繁活跃在互联网营销自家技术的李瑞峰,再次暴露出魏牌当前的男篮世界杯后可能退出国家队的球员郭艾伦顾全王哲林在列明年的男篮世界杯可能是中国男篮八年来唯一的一次世界大赛了,进军巴黎奥运会几乎没有可能,如此一来,有些球员也差不多要慢慢淡出国家队了。纵然目前的这支中国男篮打的很差,创下了多项耻辱记湖北富豪罗秋平一年入账474亿,蝉联11年销冠,半年暴跌570亿文帅狗黑皮编辑浮渔说娱2009年,罗秋平仅仅凭洗衣液一个产品,就轻松完成一亿小目标,以一己之力击败宝洁联合利华,成为国内日化行业当之无愧的龙头。并且之后的10年里,罗秋平一度占据国跨省异地就医新规出台这些细则事关你我国家医保局财政部7月26日发布关于进一步做好基本医疗保险跨省异地就医直接结算工作的通知,统一规范参保人外地就医备案基金支付协同业务等细则,将对每一名有外出就医需求的参保人产生重要影卖男装的红豆股份跨界锂电,称完工后年收入45亿,上交所火速问询锂电热下,又有公司加码转型,切入赛道。这一次是知名老牌服装企业红豆股份(600400。SH)。红星资本局注意到,近日,红豆股份公告称,公司控股子公司红日风能拟与超壹动力投资建设3G价格已涨超70,光纤光缆短缺威胁全球5G建设?经历了几年近乎惨烈的价格竞争后,光纤光缆行业已经从严重的量价双杀低谷中走出,开启新一波景气周期。据报道,全球光纤电缆的短缺推高了价格并延长了交货时间,这甚至危及到了全球电信基础设施电视盒子什么品牌好?线上卖家分析2022电视盒子排行榜电视盒子的出现拯救了许多濒临淘汰的电视机,而经过这几年的发展,电视盒子层出不穷的产品可以说是让人看花了眼,尤其是对这类产品了解不够的人群,初次购买电视盒子什么品牌好?为了满足消费者冲击高端,realme真我品牌独立成事实,脱离OPPO真能否发展更好?realme短短几年凭借着高速的发展,已经成为了国产手机行业中的一匹黑马。大家都知道,这个品牌成立于2018年5月,虽然是全新品牌,但却是OPPO全资控股的子品牌,最初主要是面向东