#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 文本的读写流程
// 1.打开文件》打到文本》QFileDialog::getOpenFileName返回的是
// 一个字符串,包括了路径+文件名字
// open()方法打开文本
// 2.读写文本
// readAll(),readLine(),write()
// 3.关闭文本
// close()
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, "选择文本", "/home/alientek");
qDebug() << fileName << endl;
// 设置要打开的文件
file.setFileName(fileName);
// 打开文件
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "文本打开失败" << endl;
return;
}
// QString的构造函数自动转换
ui->textEdit->setPlainText(file.readAll());
// 关闭文件
file.close();
}
void Widget::on_pushButton_2_clicked()
{
if (file.fileName().isEmpty())
return;
// 打开文件
if (!file.open(QIODevice::ReadWrite)) {
qDebug() << "文本打开失败" << endl;
return;
}
// 写文件
file.write(ui->textEdit->toPlainText().toUtf8());
// 关闭
file.close();
ui->textEdit->clear();
}
QT文本操作,代码界面可运行
需积分: 0 118 浏览量
更新于2024-04-15
1
收藏 8KB ZIP 举报
QT框架是Qt公司开发的一款强大的跨平台应用程序开发框架,它基于C++语言,支持Windows、Linux、macOS、Android和iOS等操作系统。本资源主要关注的是在QT中进行文本操作的相关知识,通过代码实现界面可运行的功能。在QT中,我们可以使用各种类库来处理文本输入、显示、编辑和格式化。
1. **QTextEdit与QPlainTextEdit**:这两个类是QT中用于文本编辑的主要组件。QTextEdit支持富文本编辑,可以处理包括字体、字号、颜色、对齐方式等在内的格式化文本;而QPlainTextEdit则主要用于纯文本编辑,不支持复杂的格式化功能,但通常性能更优。
2. **文本输入**:QT提供了插入、修改和删除文本的方法。例如,可以使用`QTextEdit::insertPlainText()`或`QTextEdit::insertHtml()`来插入文本,`QTextEdit::textCursor()`获取当前的文本光标,然后通过`QTextCursor`类进行更精确的文本操作。
3. **事件处理**:QT中的信号和槽机制使得我们能够响应用户交互,如点击、按键等。例如,可以通过连接`textChanged()`信号到相应的槽函数来监听文本内容的改变。
4. **读写文件**:QT提供`QFile`类用于文件操作,`QTextStream`类则用于读写文本文件。通过`QFile::open()`打开文件,`QTextStream`的`<<`和`>>`操作符读写文本,最后用`QFile::close()`关闭文件。
5. **文本格式化**:QT支持多种格式化的文本操作,如设置文本的字体、颜色、背景色等。`QTextCharFormat`类用于创建格式化字符,`QTextCursor::setCharFormat()`应用这些格式。
6. **查找和替换**:`QTextEdit::find()`方法可以实现文本查找,配合`QTextCursor`可以实现替换功能。
7. **文本布局**:QT支持段落、列表、表格等多种文本布局,通过`QTextBlockFormat`和`QTableWidget`等类可以实现。
8. **插件和扩展**:QT的可扩展性允许开发自定义的文本编辑器功能,例如通过继承`QTextEditorExtension`接口,可以创建自己的编辑器插件。
9. **界面设计**:QT Creator是官方提供的集成开发环境,它内置了UI设计器,可以方便地拖拽组件构建界面,并将设计的界面转换为代码。
10. **多线程**:对于大型文本处理任务,QT支持多线程,可以使用`QThread`类将耗时的操作放到后台执行,以保持界面的响应性。
以上就是QT中进行文本操作的核心知识点,通过学习和实践这些内容,你可以创建出功能丰富的文本编辑应用。记得在编写代码时遵循QT的设计原则,注重代码的可读性和可维护性,同时利用QT的跨平台特性,确保程序能在多种操作系统上运行。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
骑着单车飘移
- 粉丝: 37
- 资源: 2
最新资源
- 被忽视的成本:中国城市扩张导致的生态系统服务损失从三耦合的角度来看
- 永磁同步电机PMSM参数辨识的粒子群优化算法实现流程解析与案例探索,基于粒子群优化算法的PMSM参数精准辨识与迭代更新策略,基于粒子群优化算法的永磁同步电机PMSM参数辨识 关键词:永磁同步电机 粒子
- 揭示城市扩张对植被碳的影响封存能力-以长江经济带为例(软件翻译)
- 双馈风电机组与同步发电机组四机两区域Simulink仿真建模及风光储联合调频与多种控制策略结合混合储能技术研究,双馈风电机组与同步发电机组四机两区域Simulink仿真建模及风光储联合调频控制策略,混
- 电气安装工 初级工.pdf
- 清华大学:普通人如何抓住DeepSeek红利
- Swift 编程语言的入门教程,适合零基础或有一定编程经验的读者快速上手
- 清华出品(104页)DeepSeek从入门到精通
- DeepSeek指导手册(24页)
- 研究机翼在不同速度下产生的噪音和性能表现
- JimuFlow RPA工具MacOS版v1.0.0
- MATLAB滚动轴承故障机理建模与仿真分析:基于ODE45的数值计算与多类型故障诊断预测研究,MATLAB轴承动力学模拟:滚动轴承故障机理建模与数值计算,多故障类型模拟及数据分析报告(含故障类型识别与
- 基于改进Relief算法的特征选取与关联向量机在短期负荷预测中的Matlab应用复现,基于改进Relief算法的特征选取与关联向量机在短期负荷预测中的实践(Matlab复现),相关向量机和特征选取技术
- COMSOL模拟技术揭秘:金属合金凝固过程及连铸工艺精确分析-相场流场与温度场的综合运用探究坯壳厚度计算,金属合金凝固与连铸过程数值模拟:相场流场温度场分析下的坯壳厚度计算,comsol数值模拟
- JimuFlow RPA工具Ubuntu版v1.0.0
- 煤层瓦斯渗透扩散与煤体孔隙裂隙二重介质特性研究-基于修正的P-M渗透率模型与气固耦合效应的模拟分析,煤层瓦斯渗透扩散的深部采煤模型研究:建立孔隙裂隙二重介质特性P-M渗透率模型与气固耦合模型的解析