第7篇 实现文本查找功能.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7篇 实现文本查找功能

实现文本查找功能加上查找菜单的功能。因为涉及Qt Creator的很多实用功能,所以单独用一篇文章来介绍。以前都用设计器设计界面,而这次我们用代码实现一个简单的查找对话框。怎么实现查找功能,详细地说明了怎么进行类中方法的查找和使用。其中也Qt Creator程序中函数的声明位置和定义位置间快速切换。 class QLineEdit; class QDialog; 前置声明所在的位置跟头文件包含的位置相同。 然后在private中添加对象定义: QLineEdit *findLineEdit; QDialog *findDlg; 下面再添加一个私有槽声明: private slots: void showFindText(); 槽可以看做是一个函数,只不过可以和信号进行关联。 2.下面到mainwindow.cpp文件中,因为前面在头文件中使用了类的前置声明,所以这里需要先添加头文件包含: #include QLineEdit #include QDialog #include QPushButton 然后在构造函数中进行初始化操作,即添加如下代码: findDlg = new QDialog(this); findDlg-setWindowTitle(tr(查找)); findLineEdit = new QLineEdit(findDlg); QPushButton *btn = new QPushButton(tr(查找下一个), findDlg); QVBoxLayout *layout = new QVBoxLayout(findDlg); layout-addWidget(findLineEdit); layout-addWidget(btn); connect(btn, SIGNAL(clicked()), this, SLOT(showFindText())); 这里创建了一个对话框,然后将一个行编辑器和一个按钮放到了上面,并使用布局管理器进行布局。最后将按钮的单击信号关联到了自定义的显示查找到的文本槽上。下面来添加该槽的定义。 3.这里先说一个可以快速从头文件声明处创建函数定义的方法。到mainwindow.h文件中,将鼠标定位到showFindText()函数上,然后点击右键,在弹出的菜单中选择“重构”→“在mainwindow.cpp添加声明”,或者直接使用Alt+Enter快捷键,这样就会直接在mainwindow.cpp文件中添加函数定义,并跳转到该函数处。如下图所示。 二、实现查找功能 下面我们来分步骤完成showFindText()函数。在讲解过程中会涉及一些很实用的功能的介绍。 1.先在函数中添加一行代码来获取行编辑器中要查找的字符串。 void MainWindow::showFindText() { QString str = findLineEdit-text(); } 2.在下一行,我们先输入ui,然后按下键盘上的“.”键,这时就会自动输入“.”或者“-”,并且列出ui上所有可用部件的对象名。如下图所示。 3.我们要输入textEdit,先输入t,这时会自动弹出textEdit,只需要按下回车键即可。如下图所示。 4.下面我们将光标放到textEdit上,这时就会出现QTextEdit类的简单介绍,如下图所示。 5.按照提示,我们按下键盘上的F1键,就会在编辑器的右侧打开QTextEdit类的帮助文档。如下图所示。这时还可以按下上面的“切换至帮助模式”来进入到帮助模式中打开该文档。 6.我们在该类的Public Functions公共函数列表中发现有一个find()函数。如下图所示。 7.从字面意思上可以知道该函数应该是用于查找功能的,我们点击该函数进入到它的详细介绍处。如下图所示。 8.根据介绍可以知道该函数用于查询指定的exp字符串,如果找到了就将光标跳转到查找到的位置,如果没有找到就返回false。这个函数还有一个QTextDocument::FindFlags参数,为了了解该参数的意思,我们点击该参数进入其详细介绍处。如下图所示。 可以看到该参数是一个枚举变量,用来指定查找的方式,分别是向后查找、区分大小写、全词匹配等。如果不指定该参数,默认的是向前查找、不区分大小写、包含该字符串的词也可以查找到。这几个变量还可以使用“|”符号来一起使用。 9.根据帮助,我们补充完该行代码: ui-textEdit-find(str, QTextDocument::FindBackward); 10. 这时已经能实现查找的功能了。但是我们刚才看到find的返回值类型是bool型,而且,我们也应该为查找不到字符串作出提示。if (!ui-textEdit-find(str, QTex

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档