Qt新手入门指南——创建一个基于Qt Widget的文本查找器(四)_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > Qt新手入门指南——创建一个基于Qt Widget的文本查找器(四)

Qt新手入门指南——创建一个基于Qt Widget的文本查找器(四)

 2023/1/9 21:17:14  AABBbaby  程序员俱乐部  我要评论(0)
  • 摘要:Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。本教程将介绍如何使用QtCreator创建一个小型的Qt应用程序——文本查找器,它是QtUI工具文本查找示例的简化版本,应用程序用户界面是通过使用QtDesigner从Qtwidgets构建的,应用程序逻辑是通过使用代码编辑器用C++编写的。在上文中
  • 标签:创建 查找 一个 新手

Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。

本教程将介绍如何使用QtCreator创建一个小型的Qt应用程序——文本查找器,它是Qt UI工具文本查找示例的简化版本,应用程序用户界面是通过使用Qt Designer从Qt widgets构建的,应用程序逻辑是通过使用代码编辑器用C++编写的。

在上文中,主要为大家介绍了如何创建一个文本查找器项目(点击这里回顾>>),本文继续介绍如何完成Header文件、源文件等。

点击获取Qt Widget组件下载
填补缺失的部分
完成Header文件

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 Widget组件推荐
  • QtitanRibbon?- Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart?- Qt类图表组件:是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanDataGrid?- Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!

Qt技术交流群:166830288??????欢迎一起进群讨论

更多Qt产品教程、下载、正版授权资讯,请点击获取

发表评论
用户名: 匿名