Qt使用教程之创建一个基于Qt部件的应用程序(三)

<Qt Enterprise最新版下载>

创建一个基于Qt部件的应用程序(二)一文中,我们为大家介绍了填充缺失部分的设计用户界面以及完成头文件等内容。接下来在本文中,我们将继续为大家介绍填充缺失部分的余下所有内容,欢迎品鉴!

完成源文件

在上文中,我们完成了头文件,现在我们移动到源文件,textfinder.cpp。

1.在Edit视图的Projects面板中,双击textfinder.cpp来打开它进行编辑。

2.使用QFile来新增代码加载一个文本文件,然后使用QTextStream读取它,最后在textEdit中使用QTextEdit::setPlainText()来显示它。通过下面的代码片段来说明这一点:

1
2
3
4
5
6
7
8
9
10
11
12
13
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中:

1
2
#include <qfile>
#include <qtextstream></qtextstream></qfile>

4.对于on_findButton_clicked() slot来说,新增代码到提取的搜索字符串中,并且使用QTextEdit::find()函数在文本文件中查询搜索字符串。下面的代码片段说明了这一点:

1
2
3
4
5
void TextFinder::on_findButton_clicked()
{
QString searchString = ui->lineEdit->text();
ui->textEdit->find(searchString, QTextDocument::FindWholeWords);
}

5.一旦两个功能被完成之后,在构造函数中添加一行来调用loadTextFile(),下面的代码说明了这一点:

1
2
3
4
5
6
TextFinder::TextFinder(QWidget *parent)
: QWidget(parent), ui( new Ui::TextFinder)
{
ui->setupUi( this );
loadTextFile();
}

该on_findButton_clicked() slot会通过下面的代码在生成的ui_textfinder.h文件中自动被调用。

1
QMetaObject::connectSlotsByName(TextFinder);
创建一个资源文件

在你嵌入的输入文本文件中,你需要一个资源文件(.qrc)。该输入文件可以任何具有文本段落的.txt文件。创建命名为input.txt的文本文件,并将其存储在textfinder文件夹中。

要添加一个资源文件:

1.选择File > New File or Project > Qt > Qt Resource File > Choose。

创建一个基于Qt部件的应用程序(三)

打开Choose the Location对话框。

创建一个基于Qt部件的应用程序(三)

2.在Name字段中输入textfinder。

3.在Path字段中输入 C:\Qt\examples\TextFinder,然后点击Next或Continue。打开Project Management对话框。

创建一个基于Qt部件的应用程序(三)

4.在Add to project字段中,选择TextFinder.pro然后点击Finish或Done在代码编辑器中打开该文件。

5.选择Add > Add Prefix。

6.在Prefix字段中,更换一个带斜杠(/)的默认前缀。

7.选择 Add > Add Files来定位并添加input.txt。

创建一个基于Qt部件的应用程序(三)
编译和运行程序

现在你已经拥有了所有必要的文件,点击运行按钮来编译和运行程序。

有兴趣的朋友可以点击查看更多有关Qt的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值