「Qt中文教程指南」如何创建基于Qt Widget的应用程序(三)

news2024/11/16 11:42:48

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

本文描述了如何使用Qt Creator创建一个小的Qt应用程序 - 文本查找器,在上文中(点击这里回顾>>)介绍了如何设计用户界面,在本文将继续介绍如何完善Header、Source文件,一定要持续关注哦~

如何创建基于Qt Widget的应用程序?

点击获取Qt Widget组件下载(Q技术交流:166830288)

填补缺失的部分

首先设计用户界面,然后继续填充缺失的代码。最后,添加查找功能。

完善Header文件

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

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

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

private slots:
void on_findButton_clicked();

private:
Ui::TextFinder *ui;
void loadTextFile();
完善Source文件

现在header文件已经完成,接下来跳转到源文件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,请在textfinder.cpp中添加以下#includes:

#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()槽:

QMetaObject::connectSlotsByName(TextFinder);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多态的使用以及多态底层的实现(上)

什么是多态 我们让不同的对象去完成同一件事情&#xff0c;这件事情的结果是不一样的&#xff0c;例如买火车票&#xff0c;我们学生买火车票&#xff0c;普通人买火车票&#xff0c;或是军人买火车票最后结果都是不一样的。 多态的要求是什么 首先一定是要在继承中 虚函数…

机器学习笔记 - 深度学习中跳跃连接的直观解释

一、概述 如今人们利用深度学习做无数的应用。然而,为了理解在许多作品中看到的大量设计选择(例如跳过连接),了解一点反向传播机制至关重要。 如果你在 2014 年尝试训练神经网络,你肯定会观察到所谓的梯度消失问题。简单来说:你在屏幕后面检查网络的训练过程,你看到的只…

AI驱动的未来:探索人工智能的无限潜力 | 开源专题 No.39

这一系列开源项目代表着多个领域的最新技术成果&#xff0c;包括深度学习、自然语言处理、计算机视觉和分布式训练。它们共同的特点是致力于教育、资源分享、开源精神、多领域应用以及性能和效率的追求&#xff0c;为广大开发者、研究者和学生提供了宝贵的工具和知识&#xff0…

layui框架实战案例(21):layui table单元格显示图片导致复选框冗余的解决方案

图片自适应表格CSS 为防止单元格内的图片不能正常显示&#xff0c;需本地重写CSS。 /*layui-table图片自适应*/ .layui-table-cell {height: auto;line-height: 20px;}.layui-table-cell img {height: 50%;max-width: 50%; }列代码 , cols: [[{type: checkbox,fixed:left, w…

高精度时间测量(TDC)电路MS1022

MS1022 是一款高精度时间测量电路&#xff0c;内部集成了模拟比 较器、模拟开关、施密特触发器等器件&#xff0c;从而大大简化了外 围电路。同时内部增加了第一波检测功能&#xff0c;使抗干扰能力大 大提高。通过读取第一个回波脉冲的相对宽度&#xff0c;用户可以获 得接…

图像信号处理板设计原理图:2-基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板

综合图像处理硬件平台包括图像信号处理板2块&#xff0c;视频处理板1块&#xff0c;主控板1块&#xff0c;电源板1块&#xff0c;VPX背板1块。 一、板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678&#xff0c;1片Xilinx FPGA XC7K420T-1FFG1156&#xff0c;1片X…

【ROS 2 Humble】 Ubuntu 20.04(Focal)平台 源码安装

提问链接&#xff1a; https://answers.ros.org/questions/ —————————————— ROS 1 各版本支持截止时间查看 ROS 1 支持时间查看 链接 https://wiki.ros.org/Distributions ROS 2 各版本支持截止时间查看 ROS 2 版本支持时间查看 ROS 2 https://docs.ros.…

开赛在即 | 赛宁网安技术支撑第七届“蓝帽杯”决赛

为全面贯彻网络强国重要思想&#xff0c;进一步加强落实网络安全人才战略部署&#xff0c;推动网络安全技术交流发展&#xff0c;促进高校尖端人才培养&#xff0c;提升专职人员安全技能。由公安部网络安全保卫局、教育部教育管理信息中心、中国教育协会指导&#xff0c;中国人…

vue3 列表页开发【选择展示列】功能

目录 背景描述&#xff1a; 开发流程&#xff1a; 详细开发流程&#xff1a; 总结&#xff1a; 背景描述&#xff1a; 这个功能是基于之前写的 封装列表页 的功能继续写的&#xff0c;加了一个选择展示列的功能&#xff0c;可以随时控制表格里展示那些列的数据&#xf…

榜样力量激发青少年英语学习新活力

近日,在第二届iEnglish英语风采秀总决选中,12岁的天津女孩田丽雨以出色的英语能力和生动表演赢得了年度舞台之星的称号。田丽雨的英语学习方法引发了社会各界的广泛关注,尤其是她以身边榜样为动力,借助智能英语学习工具iEnglish实现了英语自由阅读和无障碍交流的目标。 据中国青…

[数据挖掘、数据分析] clickhouse在go语言里的实践

系列文章目录 [数据挖掘] clickhouse在go语言里的实践 [数据挖掘] 用户画像平台构建与业务实践 文章目录 系列文章目录前言一、clickhouse的起源二、OLAP/OLTP2.1、主流的OLAP/OLTP数据库 三、go语言开发实践3.1、安装配置go语言环境&#xff0c;配置IDE3.1.1、Go开发环境安装…

Spring框架漏洞学习之第二篇(CVE-2022-22965、CVE-2022-22947、CVE-2018-1273、CVE-2018-1270)

写在前边 如果在浏览本文时发现技术性错误时&#xff0c;欢迎指正&#xff1b;如果需要本框架探测的POC和EXP也可以私信&#xff0c;我看到后也会及时恢复大家。 总之&#xff0c;欢迎各路大佬叨扰&#xff01; Spring Framework 远程代码执行漏洞&#xff08;CVE-2022-22965&…

vue3中computed的用法

一、完整代码 <template><div class"about"><h1>Computed的用法</h1><h3>姓:{{ person.firstName }}</h3><input type"text" v-model"person.firstName"><h3>名:{{ person.lastName }}</h3…

2023年中国水稻收割机产量、销量及市场规模分析[图]

水稻收割机行业是指以收割水稻为主要功能的农业机械行业&#xff0c;随着农业现代化的推进&#xff0c;水稻收割机行业也在不断发展和创新&#xff0c;以满足不断提高的农业生产效率和降低劳动成本的需求。 水稻收割机分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网…

地方文化的守护者:TikTok如何保护和传承传统?

在全球化和数字化的时代&#xff0c;地方文化的保护和传承变得尤为重要。社交媒体平台如TikTok已经成为一种有力的工具&#xff0c;帮助地方文化传统得以传承和分享。本文将深入探讨TikTok在保护和传承地方文化方面的作用&#xff0c;并分析它如何成为地方文化的守护者。 TikTo…

使用 ClickHouse 深入了解 Apache Parquet (二)

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 这篇文章是我们的 Parquet 和 ClickHouse 博客系列的第二部分。在这篇文章中&#xff0c;我们将更详细地探讨 Parquet 格式&#xff0c;重点介绍使用 ClickHouse 读写文…

jsp debug模式

1、复制 action 后面名称 全局搜找到对应的java文件 2、点击debug模式 点击断点 3、进入页面 数据就能打印出来 4、按f8 查看下一条数据

支付宝小程序介入人脸识别(金融级--前端部分)

在这里只做前端部分说明: 详情参考文档:如何通过集成支付宝小程序唤起实人认证服务_实人认证-阿里云帮助中心 操作步骤 调用 API 发起认证。 发起认证服务。 调用 startBizService 接口请求认证。 function startAPVerify(options, callback) {my.call(startBizService, {n…

Vue-vue项目Element-UI 表单组件内容要求判断

整体添加判断 <el-formref"ruleFormRef":model"formModel"class"demo-ruleForm"label-position"top"status-icon:rules"rules"><el-form-item label"姓名" prop"applyUsers" class"form-…