Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。
本教程将介绍如何使用QtCreator创建一个小型的Qt应用程序——文本查找器,它是Qt UI工具文本查找示例的简化版本,应用程序用户界面是通过使用Qt Designer从Qt widgets构建的,应用程序逻辑是通过使用代码编辑器用C++编写的。
在上文中,主要为大家介绍了如何创建一个文本查找器项目(点击这里回顾>>),本文继续介绍如何完成Header文件、源文件等。
点击获取Qt Widget组件下载textfinder.h文件已经有了必要的#includes、构造函数、析构函数和Ui对象,开发人员需要添加一个私有函数loadTextFile()来读取和显示QTextEdit中输入文本文件的内容。
1. 在Edit视图的Projects视图中,双击textfinder.h文件来打开它进行编辑。
2. 在私有部分中添加一个私有函数,在Ui::TextFinder指针之后:
?
class="prettyprint lang-cpp">private slots: void on_findButton_clicked(); private: Ui::TextFinder *ui; void loadTextFile();
?
现在头文件已经完成,接下来是源文件textfinder.cpp。
1. 在Edit视图的Projects视图中,双击textfinder.cpp文件来打开它进行编辑。
2. 添加使用QFile加载文本文件的代码,用QTextStream读取它,然后用QTextEdit::setPlainText()在textEdit上显示它:
?
void TextFinder::loadTextFile() { QFile inputFile(":/input.txt"); inputFile.open(QIODevice::ReadOnly); QTextStream in(&inputFile); QString line = in.readAll(); inputFile.close(); ui->textEdit->setPlainText(line); QTextCursor cursor = ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); }
?
3. 要使用QFile?和QTextStream,添加以下#includes到textfinder.cpp:
?
#include "./ui_textfinder.h" #include <QFile> #include <QTextStream>
?
4. 对于on_findButton_clicked()插槽,添加代码来提取搜索字符串,并使用QTextEdit::find()函数在文本文件中查找搜索字符串:
?
void TextFinder::on_findButton_clicked() { QString searchString = ui->lineEdit->text(); ui->textEdit->find(searchString, QTextDocument::FindWholeWords); }
?
5. 在构造函数中添加一行来调用loadTextFile():
?
TextFinder::TextFinder(QWidget *parent) : QWidget(parent) , ui(new Ui::TextFinder) { ui->setupUi(this); loadTextFile(); }
?
下面这行代码自动调用uic生成的ui_textfinder.h文件中的on_findButton_clicked() slot:
?
QMetaObject::connectSlotsByName(TextFinder);
?
Qt技术交流群:166830288??????欢迎一起进群讨论