欢迎来到天天文库
浏览记录
ID:38990572
大小:862.00 KB
页数:9页
时间:2019-06-23
《七、Qt Creator实现文本查找》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、现在加上查找菜单的功能。因为这里要涉及关于QtCreator的很多实用功能,所以单独用一篇文章来介绍。以前都用设计器设计界面,而这次我们用代码实现一个简单的查找对话框。对于怎么实现查找功能的,我们详细地分步说明了怎么进行类中方法的查找和使用。其中也将QtCreator智能化的代码补全功能和程序中函数的声明位置和定义位置间的快速切换进行了介绍。1.首先还是保存以前的工程,然后再将其打开。我们发现QtCreator默认的字体有点小,可以按下Ctrl键的同时按两下+键,来放大字体。也可以选择Edit->Advanced->IncreaseFontSize。2.在mainwindo
2、w.h中加入#include的头文件包含,在private中添加QLineEdit*find_textLineEdit;//声明一个行编辑器,用于输入要查找的内容在privateslots中添加voidshow_findText();在该函数中实现查找字符串的功能。3.我们进入查找菜单的触发事件槽函数,更改如下。voidMainWindow::on_action_Find_triggered(){QDialog*findDlg=newQDialog(this);//新建一个对话框,用于查找操作,this表明它的父窗口是MainWindow。findDl
3、g->setWindowTitle(tr(“查找”));//设置对话框的标题find_textLineEdit=newQLineEdit(findDlg);//将行编辑器加入到新建的查找对话框中QPushButton*find_Btn=newQPushButton(tr(“查找下一个”),findDlg);//加入一个“查找下一个”的按钮QVBoxLayout*layout=newQVBoxLayout(findDlg);layout->addWidget(find_textLineEdit);layout->addWidget(find_Btn);//新建一个垂直布局管理
4、器,并将行编辑器和按钮加入其中findDlg->show();//显示对话框connect(find_Btn,SIGNAL(clicked()),this,SLOT(show_findText()));//设置“查找下一个”按钮的单击事件和其槽函数的关联}这里我们直接用代码生成了一个对话框,其中一个行编辑器可以输入要查找的字符,一个按钮可以进行查找操作。我们将这两个部件放到了一个垂直布局管理器中。然后显示这个对话框。并设置了那个按钮单击事件与show_findText()函数的关联。5.下面我们开始写实现查找功能的show_findText()函数。voidMainWind
5、ow::show_findText()//“查找下一个”按钮的槽函数{QStringfindText=find_textLineEdit->text();//获取行编辑器中的内容}先用一个QString类的对象获得要查找的字符。然后我们一步一步写查找操作的语句。6.在下一行写下ui,然后直接按下键盘上的“<.”键,这时系统会根据是否是指针对象而自动生成“->”或“.”,因为ui是指针对象,所以自动生成“->”号,而且弹出了ui中的所有部件名称的列表。如下图。7.我们用向下的方向键选中列表中的textEdit。或者我们可以先输入text,这时能缩减列表的内容。8.如上图我们将
6、鼠标放到textEdit上,这时便出现了textEdit的类名信息,且后面出现一个F1按键。我们按下键盘上的F1,便能出现textEdit的帮助。9.我们在帮助中向下拉,会发现这里有一个find函数。10.我们点击find,查看其详细说明。11.可以看到find函数可以实现文本编辑器中字符串的查找。其中有一个FindFlags的参数,我们点击它查看其说明。12.可以看到它是一个枚举变量(enum),有三个选项,第一项是向后查找(即查找光标以前的内容,这里的前后是相对的说法,比如第一行已经用完了,光标在第二行时,把第一行叫做向后。),第二项是区分大小写查找,第三项是查找全部。
7、13.我们选用第一项,然后写出下面的语句。ui->textEdit->find(findText,QTextDocument::FindBackward);//将行编辑器中的内容在文本编辑器中进行查找当我们刚打出“f”时,就能自动弹出textEdit类的相关属性和方法。可以看到,当写完函数名和第一个“(”后,系统会自动显示出该函数的函数原型,这样可以使我们减少出错。14.这时已经能实现查找的功能了。但是我们刚才看到find的返回值类型是bool型,而且,我们也应该为查找不到字符串作出提示。if(!ui->textE
此文档下载收益归作者所有