专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Qt开发查找对话框的功能实现

  一、查找功能的实现
  1、文本查找功能的核心思想
  (1)、获取当前光标的位置并作为起始点
  (2)、向前(向后)查找目标第一次出现的位置
  (3)、通过目标位置以及目标长度在文本框中进行标记
  2、QString提供了子串查找的相关函数
  (1)、indexOf:从指定位置向后查找目标子串下标位置
  (2)、lastIndexOf:从指定位置向前查找目标子串下标位置
  3、QString类中查找函数所使用的下标位置
  4、Qt中的光标信息类QTextCursor
  (1)、文本框中的光标是一个QTextCursor类的对象
  (2)、所有与光标相关的信息都通过QTextCursor描述(如光标位置、文本选择等)
  5、查找算法流程图
  6、MainWindow和FindDialog之间的关系(为了实现弱耦合,使FindDialog内部一个指针指向QPlainTextEdit即可)
  实现的具体步骤:
  1、为了简化构造函数,就把一些初始化的东西抽取出来封装到一个函数voidFindDialog::initControl(){mfindLabel。setText(查找内容:);mfindButton。setEnabled(false);mfindButton。setText(查找下一个);mcheckBox。setText(区分大小写);mforwardButton。setText(向上);mbackwardButton。setChecked(true);mbackwardButton。setText(向下);mcancleButton。setText(取消);mgBox。setTitle(方向);mhLayout。addWidget(mforwardButton);mhLayout。addWidget(mbackwardButton);mgBox。setLayout(mhLayout);mgLayout。setSpacing(10);mgLayout。addWidget(mfindLabel,0,0);mgLayout。addWidget(mfindLineEdit,0,1);mgLayout。addWidget(mfindButton,0,2);mgLayout。addWidget(mcheckBox,1,0);mgLayout。addWidget(mgBox,1,1);mgLayout。addWidget(mcancleButton,1,2);}
  2、为了实现弱耦合,FindDialog里定义一个指向QPlainTextEdit的指针,通过构造函数传进来(并定义get和set函数来做相关操作)
  3、定义槽函数并在构造函数中连接信号与槽
  4、编写槽函数voidFindDialog::setPlainTextEdit(QPlainTextEditpText){mplainTextEditpText;}QPlainTextEditFindDialog::getPlainTextEdit(){returnmplainTextEdit;}voidFindDialog::onFindButtonClicked(){QStringtargetmfindLineEdit。text();if((mplainTextEdit!NULL)(target!)){QStringtextmplainTextEdittoPlainText();QTextCursorcmplainTextEdittextCursor();intindex1;if(mbackwardButton。isChecked()){indextext。indexOf(target,c。position(),mcheckBox。isChecked()?Qt::CaseSensitive:Qt::CaseInsensitive);if(index0){c。setPosition(index);c。setPosition(indextarget。length(),QTextCursor::KeepAnchor);mplainTextEditsetTextCursor(c);将光标信息设置到文本框里面才能看见效果}}if(mforwardButton。isChecked()){indextext。lastIndexOf(target,c。position()text。length()1,mcheckBox。isChecked()?Qt::CaseSensitive:Qt::CaseInsensitive);注意下标为负数if(index0){c。setPosition(indextarget。length());c。setPosition(index,QTextCursor::KeepAnchor);注意后往前找到后设置光标的方法mplainTextEditsetTextCursor(c);}}if(index0){QMessageBoxdlg(this);dlg。setText(找不到target);dlg。setStandardButtons(QMessageBox::Ok);dlg。setIcon(QMessageBox::Information);dlg。setWindowTitle(查找5);dlg。exec();}}}voidFindDialog::onCancleButtonClicked(){close();}
  5、记得调用FindDialog构造函数时传多一个参数
  二、小结
  (1)、QString提供了不同的子串查找方式
  (2)、QTextCursor对象保存了文本框中光标的相关信息
  (3)、QString对象和QTextCursor对象协作实现查找功能
  (4)、查找对话框和文本框的弱耦合关系满足了可复用的需求
  【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】
  链接

最期待的生活少许失望,少些生气,心态始终平和随着年龄的增长,慢慢地发现辛苦了半辈子所追求的,无非就是为了生活过得舒心!舒心,也就是希望生活中所遇见的每一件,都少许失望,少些生气,心态时常能保持平和便好。少许失望。生活中,我们关于儒家思想及其世界意义,美籍汉学家安乐哲这样说我想提出一个观点我们生活在最好的时代,同时也生活在最坏的时代。最好的时代指的是我们人类是非常伟大的,发明了各类科学技术。所以,只要我们愿意,就能在整个世界范围内消除饥饿,即使从今天谷传民的和谐之音大衣哥朱之文祝福湖南郴州知心世界岛演唱会很久没有音信的农民歌手大衣哥朱之文于昨天露面了,他在一段视频中祝福湖南郴州知心世界文化演唱会圆满成功!视频加载中之前只听说,知心世界文化创始人王瑞平和作家谷传民的关系很要好,也有消梦里的自己有一些事想提醒自己的初心却无法用朋友圈记录所以我选择把他写下来我女朋友是一个比我大4岁的女人阴差阳错的情况下我们却在一起了,但是家里人对这件事感到非常的反感甚至到了破口大骂的程度,特别的日子特别的心情的句子(特别的日子写给特别的自己)1不如意之事十有八九,但那一二就是坚持下去的动力。即使还没有把生活过成自己想要的诗情画意,但只要认真过好当下的每一天,就能不悔过去不畏将来。2亲爱的自己,别人对你好,你要加倍对别人诽谤者的良知预先的倒打一耙以及明里暗里的威胁,没有意义(来源作家方晓莉)(温碧霞的照片,来源于网络,感谢分享。)题记这篇文章其实应该早写,只不过,我从来面对诽谤的态度,选择沉默,偶尔,实在忍不住了,我会说一下,可是我一般都尽量选择避让宽心歌曾经年少多疯狂,老了一律靠南墙。哪个还在谈理想,全部都在晒太阳。管你正科与副县,退休一律戏散场。身体硬朗尚旅游,气血亏虚躺床上。人生苦短一甲子,何不快意心胸敞。闺蜜几个聊聊天,哥们别为打翻的牛奶哭泣网上曾经有一个很火的调查问卷当你老了,这一辈子最后悔的事情是什么?投票最多的第一名是后悔自己没有好好努力,导致一事无成。第二名是后悔没有选择一个好的职业。第三名是后悔没有教育好自己郑州我爱你郑州我爱你,爱一个人可以拥有,也可以离开,爱一座城应该也是如此吧!记得昨天我说过既然离开,就珍惜当下好好生活,不再关注郑州的疫情。不再关注!真的可以不再关注吗?爱一个人,没有拥有,双11的热度有所下降代表了什么?问今年的双11开始了吗?答已经结束了。多年以来都声势浩大的双11购物节,今年似乎格外安静,商家不再大力造势,身边人也很少谈及,往年热闹非凡的晚会也不见了,不少人甚至可能都快忘记了还丢丢怪大削弱!大乱斗新增传送门和草丛,防御塔倒塌可以堵路极地大乱斗迎来三项巨大改动,将于12。22和12。23版本中逐步与大家见面。接下来我们看看这些改动会对大乱斗造成怎样的影响?第一个改动海克斯传送门,一步传送到线上地图将新增一个能从
鸿蒙3。0全面升级,上百款机型陆续推送,还是华为良心手机厂商为了减少软件适配的工作量,通常会将三年前发布的手机停止系统适配,不再更新手机系统,用户想要体验最新的系统版本和功能,就必须购买新机。在整个手机行业中,苹果却是一个特例,像2魅族官宣将首发直连低轨卫星机型Mate50系列手机成为首款支持北斗卫星信号的民用智能手机,拉开了手机卫星通讯的大幕。无独有偶,近期收购魅族的星纪时代公开表示,将会推出全球首款直连低轨卫星消费级手机。据星纪时代官荣耀Magic3Pro12G512G降了2000元,赵明出手开始大方现在你还会买4G手机吗?相信很多人都会说出否定的结果。因为现在市场上的5G手机到处是,没有人愿意再入手4G手机,毕竟5G手机的价格普遍已经调低,就比如在一千元左右的价位上也能买到不2000元内性价比排行榜vivoT2x第三,第一无法被超越很多消费者选择2000元内的智能手机,要么自己用,要么给父母用,那么怎么选择到性价比较高的手机呢?安兔兔每个月都会公布手机性能排行榜,这次我们来看看最新的性价比排行榜。第五名iQO华为MateStationS发布IT之家9月6日消息,在今天的2022年华为Mate50系列及全场景新品秋季发布上,华为发布了华为WatchGT3Pro钛金属表带款,延续WatchGT3Pro设计,在健康智慧双升比SE版还便宜!苹果要搞儿童版智能手表压力给到了小天才9月6日,纽约时报在最后一刻发布爆料称,苹果将发布另一款针对儿童和青少年的智能穿戴产品,比入门级的AppleWatchSE更便宜一些。AppleWatch目前的售价为2199元起,一年追高10公分的干货抓住孩子长高黄金期孩子长高关键期第一个黄金期03岁婴幼儿期第二个黄金期47岁儿童期第三个黄金期814岁青春期5大方面调整孩子晚长1饮食蛋白质肉蛋奶豆制品等。维生素动物肝脏胡萝卜猕猴桃彩椒等。钙奶酪牛你的孩子有抑郁症吗?一直在教育系统工作,经常接触13到18岁这些年龄段的孩子。平时看着孩子们没有什么两样,但作为家长的您,了解抑郁症在这个年龄段,也就是初中高中阶段,已经不是极个别现象。你知道抑郁症的美国明明几十年前就实现了登月,为何现在反而不行文行走斯图卡前几天,美国航空航天局阿尔忒弥斯登月计划的首次试验发射,最终以取消发射而宣告夭折按照计划,运载火箭将会在几天后再次进行一次尝试。刚刚,在全球无数航天爱好者的注视下,矗立美国登月火箭一周内两度延期,下一次发射恐推迟至10月中旬极目新闻记者宋清影一周内,美国国家航空航天局(NASA)两次准备发射登月火箭,但却都因燃料泄漏取消,聚集在发射中心附近的美国民众第二次败兴而返。巨型火箭将被重新拖回机库维修,下次发欧冠1负弱旅奥巴梅杨首秀0射门中超旧将进球北京时间9月7日凌晨1点,202223赛季欧洲冠军联赛小组赛首轮打响,英超豪门切尔西客场挑战克罗地亚劲旅萨格勒布迪纳摩,奥巴梅杨迎来了他在切尔西的首秀,结果全场0射门。比赛第13分
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网