一、简介

二、实现功能

三、思路

四、代码实现

五、运行结果

一、简介:这是一个简易版的文本编辑器,只能进行简单的文件读取与保存

二、实现功能:

(1)打开指定路径的文件
(2)把文件的名字显示在标签上
(3)同时打开多个文件
(4)修改文件后可进行保存

三、思路:

(1)通过先在lineedit的文本框内输入路径,当点击查看文件内容后获取输入框的路径;然后打开该路径下的文件读取里面的内容,并且把获取到的路径提取里面的文件信息把文件名设置到标签中,创建一个textEdit文本框把刚刚读取到的数据放入文本框;
(2)当点击保存文件后把文本框内的文本内容进行读取,然后写入到指定路径下的文件内

四、实现:

如图所示先通过qt自带的ui界面拉几个需要用到的控件进来,

代码实现:
mainwindow.h(注意:这里面的使用类型转换获取内容与定义全局变量获取内容只需用上其中一个,使用时可以删掉其中的一个;建议使用类型转换)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QTextEdit>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();QTextEdit *t1 ;//新添加的private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_tabWidget_tabCloseRequested(int index);private:Ui::MainWindow *ui;};
#endif // MAINWINDOW_H

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"#include <QFile>
#include <QTextEdit>
#include <qdebug.h>
#include <QFileInfo>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);ui->tabWidget->setMovable(true);ui->tabWidget->setTabsClosable(true);
}MainWindow::~MainWindow()
{delete ui;
}//*************************使用全局变量定义来获取当前页面中的textedit******************
/*
//当点击查看文件内容后,获取文件内容然后显示在文本框内
void MainWindow::on_pushButton_clicked()
{t1 = new QTextEdit;//a.获取路径QString path = ui->lineEdit->text();//b.定义文件对象QFile *file = new QFile(path);//c.打开文件,只读方式file->open(QIODevice::ReadOnly);//d.读取文件QByteArray buf = file->readAll();//e.显示文件t1->setText(buf);//f.设置文件tab显示的文件名QFileInfo info(path);QString f_name = info.fileName();ui->tabWidget->addTab(t1,f_name);file->close();
}//把编辑框的内容写入文件内
void MainWindow::on_pushButton_2_clicked()
{//a.获取路径QString path = ui->lineEdit->text();//b.定义文件对象QFile *file1 = new QFile(path);//c.打开文件,只读方式file1->open(QIODevice::WriteOnly);//d.获取当前文本框内的内容,并写入文件QString s =  t1->toPlainText();qDebug() << s <<endl;file1->write(s.toUtf8());file1->close();
}
*//*****************使用类型转换来获取当前页面中的textedit**************************/
void MainWindow::on_pushButton_2_clicked()
{//a.获取路径QString path = ui->lineEdit->text();//b.定义文件对象QFile *file1 = new QFile(path);//c.打开文件,只读方式file1->open(QIODevice::WriteOnly);//d.使用类型转换访问派生类控件QWidget *w = ui->tabWidget->currentWidget();QTextEdit *et = dynamic_cast<QTextEdit *>(w);if(et==NULL)return ;//e.获取当前文本框内的内容,并写入文件QString s =  et->toPlainText();qDebug() << s <<endl;file1->write(s.toUtf8());file1->close();
}//当点击查看文件内容后,获取文件内容然后显示在文本框内
void MainWindow::on_pushButton_clicked()
{QTextEdit *t1= new QTextEdit;//a.获取路径QString path = ui->lineEdit->text();//b.定义文件对象QFile *file = new QFile(path);//c.打开文件,只读方式file->open(QIODevice::ReadOnly);//d.读取文件QByteArray buf = file->readAll();//e.显示文件t1->setText(buf);//设置tab中显示的文件名QStringList list = path.split("\\");//以\分割字符串QString str = list[list.size()-1];//拿到最后一个字符串,即文件名ui->tabWidget->addTab(t1,str);file->close();
}
/********************************************************/void MainWindow::on_tabWidget_tabCloseRequested(int index)
{//a.设置当前页面ui->tabWidget->setCurrentIndex(index);//b.获取当前页面QWidget *w = ui->tabWidget->widget(index);delete w;
}

main.cpp文件

#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

五、运行效果:

QT实现文本编辑器(简易版)相关推荐

  1. Qt富文本编辑器QTextDocument

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt富文本编辑器QTextDocument     本文地址:https://www.tech ...

  2. ue文本编辑器linux,UltraEdit下载_UltraEdit文本编辑器官方版下载28.0.0.98 - 系统之家...

    UltraEdit(文本编辑器)官方版是一款由IDM Solution 开发专业好用的文本编辑器.UltraEdit(文本编辑器)官方版具有业内最强大,最直观的多插入编辑和多选功能,一旦您的光标或选择 ...

  3. 2023.04.27 QT 制作文本编辑器

    有改变字体.颜色.打开文件以及保存文件功能 一.代码部分: 1. 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #inc ...

  4. Qt中文本编辑器实现语法高亮功能(Qscitinlla)

    Scintilla是一个免费.跨平台.支持语法高亮的编辑控件.它完整支持源代码的编辑和调试,包括语法高亮.错误指示.代码完成(code completion)和调用提示(call tips).能包含标 ...

  5. Qt - WPS文本编辑器(WPS字体格式)

    WPS字体格式 Shift + F5 结束断点调试 √选上 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMa ...

  6. Qt - WPS文本编辑器(WPS段落对齐)

    WPS段落对齐 具体代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #inc ...

  7. Qt - WPS文本编辑器(WPS文档操作)

    WPS文档操作 具体代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #inc ...

  8. Qt - WPS文本编辑器(WPS文档打印预览)

    WPS文档打印预览 具体代码 mainwind.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #inc ...

  9. Qt - WPS文本编辑器(WPS新建文档)

    WPS新建文档 - 功能实现 具体代码 #include "mainwindow.h" #include <QApplication>int main(int argc ...

最新文章

  1. 计算机二级函数知识,2017年全国计算机二级考试MS Office高级应用知识点:INDIRECT函数...
  2. python中字符移位加密_1.1 移位密码加密解密python实现
  3. 【BZOJ4237】稻草人
  4. 嵌入式仿真平台SkyEye的覆盖率分析
  5. logback 常用配置详解appender
  6. ubuntu解决安装Scrapy库时报x86_64-linux-gnu-gcc错误
  7. java迭代器不能修改集合值_关于使用迭代器对集合进行遍历时,不能对集合进行修改的论证...
  8. TTL转USB TTL 232 CH340
  9. Python编写微信打飞机小游戏(一)
  10. 文字输入效率神器:输入法辅助工具 KeyboardHolder
  11. 数据库基本操作和常用命令
  12. Redis 6.2.7安装配置
  13. 一个由三角形引出的乘积恒等式
  14. 【Monkey测试】Monkey测试详解
  15. smartq ten3 android4,智器(SmartQ)Ten3 MID视频测试评测-ZOL中关村在线
  16. FT2232作为JTAG烧录器的使用步骤详解
  17. 瑞星 HookCont.sys <= 24.0.0.5 驱动本地拒绝服务漏洞
  18. 神经网络对多变量的性别结果预测
  19. f2fs mkfs 格式化过程系列 1
  20. 用Python使用CNTK

热门文章

  1. 单反相机tf卡用sd卡套稳定吗_单反相机tf卡用sd卡套稳定吗
  2. LeetCode题解(1168):水资源分配优化(Python)
  3. V4L2编程代码实现以及YUV格式(V4L2二)
  4. NETDMIS5.0自动测量圆2023
  5. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析
  6. 第七节:通信之WLAN(信道)
  7. PLC SECS/GEM解决方案,设计与应用
  8. 【Java:线程与进程 详解+案例】
  9. vue页面中el-carousel轮播页面或图片
  10. fortify SCA内置规则破解到简单工具开发使用