news 2026/8/19 16:30:22

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt新手入门指南——创建一个基于Qt Widget的文本查找器(四)

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

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

在上文中,主要为大家介绍了如何创建一个文本查找器项目,本文继续介绍如何完成Header文件、源文件等。

填补缺失的部分
完成Header文件

textfinder.h文件已经有了必要的#includes、构造函数、析构函数和Ui对象,开发人员需要添加一个私有函数loadTextFile()来读取和显示QTextEdit中输入文本文件的内容。

1. 在Edit视图的Projects视图中,双击textfinder.h文件来打开它进行编辑。

2. 在私有部分中添加一个私有函数,在Ui::TextFinder指针之后:

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);
​​​​​​​
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 16:29:23

SPORK:大模型推理加速新范式,让模型自我推测并行验证

1. 项目概述&#xff1a;当大模型学会“自我分叉” 最近在折腾大语言模型推理加速时&#xff0c;我一直在思考一个问题&#xff1a;我们费尽心思搞各种外部工具链优化、模型量化、硬件加速&#xff0c;但模型本身在推理时&#xff0c;是不是就真的只能“一条路走到黑”&#xf…

作者头像 李华
网站建设 2026/8/19 16:25:32

独立产品并发增加后先守住哪些边界

独立产品并发增加后先守住哪些边界 黑客新闻&#xff08;Hacker News&#xff09;首页的推荐帖子带来了第一波真金白银的爆发流量。十分钟内&#xff0c;并发请求从平时的个位数瞬间冲到了 350 QPS。 独立开发者往往一个人搞定产品、前端与后端。产品刚上线时最怕的不是没人用&…

作者头像 李华
网站建设 2026/8/19 16:23:27

英飞凌TLE987x/TLE989x FOC例程:从获取到调试的完整指南

1. 从零开始&#xff1a;为什么你需要一份官方的FOC例程如果你正在用英飞凌的TLE987x或TLE989x系列MCU做电机控制&#xff0c;尤其是无刷直流电机&#xff08;BLDC&#xff09;或永磁同步电机&#xff08;PMSM&#xff09;的磁场定向控制&#xff08;FOC&#xff09;&#xff0…

作者头像 李华