文本编辑器例图

项目开发环境

系统版本:windows10

QT 版本: 5.9.9

开发语言:C++

已实现功能

  1. 文件操作:新建,打开,保存,另存为,打印,退出
  2. 编辑操作:复制,粘贴,剪切,查找,替换,撤销,恢复
  3. 文字编辑:字体,字号,加粗,倾斜,颜色
  4. 个性化功能:背景色修改 (软件默认背景色为护眼绿),背景图修改
  5. 快捷键操作:大部分功能已匹配相关的快捷键操作

未完善功能

  1. 查找和替换操作,仅支持从当前光标位置向后查找

  2. 文字居中,对齐等功能尚未实现

  3. 无法将图片插入文本进行操作

    ......

未解决BUG

  1. 打开操作BUG:从 文件 — 右键打开方式 — 选择本软件 — 打开后不显示文件内容

  2. 个性化功能BUG:背景图修改后,仅当前状态有效,退出软件重新打开后,背景图失效

  3. 可能有其它未知BUG,尚未发现

    ......

部分源码展示

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QCloseEvent>
#include <QMainWindow>
#include <QImage>
#include <QLabel>
#include <QTextEdit>
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QComboBox>
#include <QFontComboBox>
#include <QToolButton>
#include <QTextCharFormat>
#include <QAction>
#include <QColorDialog>
#include <QColor> class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = nullptr);
~MainWindow(); void creatMenus(); //创建菜单栏
void creatToolbars(); //创建工具栏
void creatActions(); //创建动作 void ShowNewFile();
void ShowOpenFile();
void loadFile(QString & filename);
bool maybeSave();
bool saveFile(QString & filename);
bool saveAs();
void showPrintText(); void mergeFormat(QTextCharFormat format);
void ShowFontComBox(QString comboStr);
void ShowSizeSpinBox(QString spinValue);
void ShowBoldBtn();
void ShowItalicBtn();
void ShowUnderlineBtn();
void ShowColorBtn();
void ShowCurrentFormatChanged(const QTextCharFormat &fmt);
void ShowFind();
void ShowReplace(); void SetBackgroundColor(QColor color);
void SetBackgroundImage(); protected:
void closeEvent(QCloseEvent *event); private:
QMenu * fileMenu; //菜单栏各项
QMenu * editMenu;
QMenu * personaliseMenu;
QMenu * helpMenu; QToolBar * filetoolbar; //文件工具栏
QToolBar * fontToolBar; //字体工具栏 QImage img;
QString filePath;
QTextEdit * text;
bool isUntitled; QAction * openFileAction; //文件菜单项
QAction * newFileAction;
QAction * saveFileAction;
QAction * saveasFileAction;
QAction * printFileAction;
QAction * exitAction; QAction * copyAction; //编辑菜单项
QAction * pasteAction;
QAction * cutAction;
QAction * undoAction;
QAction * restoreAction;
QAction * findAction;
QAction * replaceAction; QAction * setBkColorAction;
QAction * setBkImageAction; QAction * helpInformationAction; //帮助菜单项
QAction * aboutSoftwareAction;
QAction * AboutAuthorAction; QLabel * fontLabel1; //字体设置项
QFontComboBox * fontComboBox;
QLabel * fontLabel2;
QComboBox * sizeComboBox;
QToolButton * boldBtn;
QToolButton * italicBtn;
QToolButton * underlineBtn;
QToolButton * colorBtn;
};
#endif // MAINWINDOW_H

打包软件下载

https://wws.lanzous.com/i5HeRfmkf6d

程序源码下载

https://wws.lanzous.com/iDwC2fmkf8f

最后

本人 QQ 2694218551,欢迎加我一起讨论编程问题!!

C++ Qt 项目实战(一)之文本编辑器的更多相关文章

  1. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  2. web项目中nicedit富文本编辑器的使用

    web项目中nicedit富文本编辑器的使用 一.为什么要用富文本编辑器? 先说什么是富文本编辑器吧,普通的html中input或textarea标签只能进行简单的输入,而做不到其他的文本调整功能,甚 ...

  3. flask项目中使用富文本编辑器

    flask是一个用python编写的轻量级web框架,基于Werkzeug WSGI(WSGI: python的服务器网关接口)工具箱和Jinja2模板,因为它使用简单的核心,用extension增加 ...

  4. ASP.MVC 项目中使用 UEditor 文本编辑器

    1.下载UEditor 源文件,并导入项目中 2.添加项目中需要使用的CSS和JS //Ueditor 文本编辑器必备的StyleBundle和ScriptBundle StyleBundle ued ...

  5. ssm项目中ueditor富文本编辑器的使用

    一.下载 https://ueditor.baidu.com/website/index.html 将ueditor放到项目中合适的位置 二 . 配置文件上传路径 在utf8-jsp/jsp/conf ...

  6. Django项目中添加富文本编辑器django-ckeditor

    django-ckeditor库的使用步骤: 1.在命令行下安装django-ckeditor这个库: 命令:pip install django-ckeditor 2.安装成功后,配置Django项 ...

  7. vue项目使用Ueditor富文本编辑器总结

    我使用的是前端大佬封装的vue-ueditor-wrap插件,结合ueditor本身的压缩包开发的. 1.下载vue-ueditor-wrap: npm install vue-ueditor-wra ...

  8. Qt学习笔记-制作一个文本编辑器

    创建一个MainWindow工程.添加一个TextEdit.垂直布局. 在menu上面创建新的action. 在新建的时候判断文本有没有被修改. 下面,将某个文件打开读入到TextEdit中. 保存文 ...

  9. MVC项目中应用富文本编辑器UEditor中的几个坑

    UEditor:百度出品 官网连接:http://ueditor.baidu.com/website/ 错误现象:在官网上复制到本地后,上传图片功能不能用, 控制台提示:“请求后台配置项http错误, ...

随机推荐

  1. Elasticsearch -head 查询报 406错误码

    问题:利用Elasticsearch -head插件不能查看数据或者在Elasticsearch -linux的curl命令操作时总是提示: {"error":"Cont ...

  2. AT3950-[AGC022E]Median Replace【贪心,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/AT3950 题目大意 一个包含\(?,0,1\)的长度为奇数的序列,把\(?\)替换为\(0/1\).每次可以选择三 ...

  3. EXP-00091 正在导出有问题的统计信息-处理方法

    打开oracle的SQL Puls中的命令如下: 1.conn /as sysdba   登陆 2.shutdown immediate;    关闭数据库 3.startup mount 4. AL ...

  4. AtCoder Beginner Contest 221 A~E题解

    目录 A - Seismic magnitude scales B - typo C - Select Mul D - Online games E - LEQ 发挥比较好的一场,就来搓篇题解. F ...

  5. 题解 Yet Another Number Sequence

    题目传送门 Description 给出 \(n,k\) ,求出: \[\sum_{i=1}^{n} f_i·i^k \] 其中 \(f_i\) 表示斐波拉契第 \(i\) 项.\(n\le 10^{ ...

  6. 『Mivik的萌新赛 & Chino的比赛 2020』T2 题解 Galgame

    如果这是我最后一篇题解,请每年为我上坟. Galgame 题目传送门 Decription as_lky 搞到了很多 Galgame(真的很多!).一款 Galgame 可以被描述为很多场景(Scen ...

  7. 洛谷4035 JSOI2008球形空间产生器 (列柿子+高斯消元)

    题目链接 qwq 首先看到这个题,感觉就应该从列方程入手. 我们设给定的点的坐标矩阵是\(x\),然后球心坐标\(a_1,a_2....a_n\) 根据欧几里得距离公式,对于一个\(n维空间\)的第\ ...

  8. FastAPI 学习之路(十一)请求体 - 嵌套模型

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  9. scala基础篇---- Try finally不加catch的使用情形

    普通的try-catch-finally Try{ } catch{//不加catch向上抛出异常 case  _=> } finally{//一般是资源关闭 } 普通的try-finally ...

  10. elasticsearch父子文档处理(join)

    elasticsearch父子文档处理 join 一.背景 二.需求 三.前置知识 四.实现步骤 1.创建 mapping 2.添加父文档数据 3.添加子文档 4.查询文档 1.根据父文档id查询它下 ...