QT项目文本编辑器开发(2)

news/2024/12/16 19:43:05/文章来源:https://www.cnblogs.com/AnnaStore/p/18611018

本章节接着上文,实现文本编辑器的新内容创建。

首先我们创建一个新的MyChildWnd 

按照以下内容添加我们的代码:


class MyChildWnd : public QTextEdit
{Q_OBJECTpublic:MyChildWnd();QString myCurDocPath;void newDoc(); //创建新文档QString getCurDocName();bool loadDoc();bool saveDoc();bool savesDoc();bool saveDocOpt();void setAlignOfDocumentText(int aligntype);void setParaStyle(int pstyle);
protected:void closeEvent(QCloseEvent *event);
private:void DocBeModified();
private:bool beSaved;void setCurDoc(const QString &docName);void promptSave();
};#endif // MYCHILDWND_H

创建文档

我们先来写我们的创建新文档内容


#include "mychildwnd.h"MyChildWnd::MyChildWnd() {setAttribute(Qt::WA_DeleteOnClose);//子窗口关闭时销毁该对象实例beSaved = false;
}void MyChildWnd::newDoc()
{//设置窗口编号static int wedSeqNum = 1;//设置当前文档word 命名为"Word 文档 编号"的形式,编号在使用后自动+1myCurDocPath = tr("Word 文档 %1").arg(wedSeqNum++);//设置窗口标题,文档被改动后在其名称后面显示"*";setWindowTitle(myCurDocPath+"[*]"+tr("-MyWord"));//文档被改动时发送contentsChanged信号,执行自定义docBeModified()槽函数connect(document(),&QTextDocument::contentsChanged,this,&MyChildWnd::DocBeModified);
}QString MyChildWnd::getCurDocName()
{return QFileInfo(myCurDocPath).fileName();//返回文件路径
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT 自动伸缩的工具栏和自定义配置的工具栏 QToolBar更多按钮的样式设置

1.实现目标 如下图所示,播放窗口的工具栏,有很多按钮,当窗口的宽度不够时,能够自动生成更多按钮,点击更过按钮就会出现多余按钮的menu菜单;2。实现方法 一开始我还想着加个按钮控件,在播放窗口resize函数中判断工具栏的宽度能容纳几个按钮,判断宽度是否够,如果不够的话…

诊断工具——找到泄漏点

C#若出现内存泄漏时可通过如下方式进行查找。 多次运行后在VS的诊断工具中截取内存快照, 然后点开内存快照,查看托管内存信息,如下图: 上图中PerspectiveViewModel是PerspectiveView页面的VM,理论上只有打开它时才会创建1个,离开这个页面时它会被GC回收。但通过多次进入…

海山数据库(He3DB)源码解读:T_DropRoleSetStmt原理浅析

一、概述DropRoleStmt 表示删除角色的 DDL 语句。。 二、DropRole 命令的执行流程PostgresMain exec_simple_query →执行简单的 SQL 查询; StartTransactionCommand → 开始事务; pg_parse_query →解析为内部的抽象语法树(AST); PortalRun standard_ProcessUtility →权限…

【Adobe Dimension 2024下载与安装】

1、安装包 我用夸克网盘分享了「Dimension 2024」 链接:下载地址 2、安装教程(安装前关闭系统防护) 1) 下载软件安装包,双击Set-up.exe安装2) 修改安装目录,点击继续3) 安装完成,点击启动4) 启动程序

【教程】任务管理(高级)打造完整的项目管理平台

通过循序渐进的功能升级,你将打造一个强大的管理系统,让团队协作更高效、流程更智能。前言 亲爱的读者,恭喜你已经成功搭建了基础的任务管理系统!不过,这仅仅是开始。就像盖房子一样,我们已经打好了地基,接下来要一层层建起更高的楼层,让这个系统变得更加完善和强大。 …

阿里云服务器-centos7-ARL灯塔搭建

以阿里云centos7服务器为例,快速搭建arl灯塔系统 一、安装doker环境 已有doker环境的可以更新或者跳过,自行操作 没有安装过doker环境的参考以下步骤: 1.1 安装docker所需要的依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2这是一个在基于 yum 包管理…

24-12-16PHP大作业步骤!!!

一:先在自己的本地数据库里新建一个叫dzy的数据库,里面建有四个表,下面是建表的代码 #用户表 CREATE TABLE user( id int(11) not NULL PRIMARY KEY auto_increment, username VARCHAR(30) not NULL UNIQUE, email VARCHAR(30) not null, password VARCHAR(100) not null );…

As启动虚拟机报错

当前用户下这个目录新建文件:.android advancedFeatures.ini Vulkan = off GLDirectMem = on

AI应用实战课学习总结(1)必备AI基础理论

我最近入坑黄佳老师的《AI应用实战课》,记录下我的学习之旅,也算是总结回顾。今天是我们的第一站,必备的AI基础理论,它是后续应用实践的基础。大家好,我是Edison。 由于公司的愿景逐渐调整为ONE Tech Company,公司的IT战略也逐渐地朝着Data & AI Driven发展,因此近半…

服务器插内存条

1.介绍 内存条是数量不同对应不同的插卡顺序 插入顺序跟主板的类型有关,不同型号的主板对应不同的插法2.查看主板类型 1)查看主板信息 dmidecode -t baseboard 2)查看主板型号 dmidecode -t baseboard |grep Product Name:| awk -F: {print $2}3.某些对应关系 一定要找准:…

【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录

【问题分类】数据导入导出 【关键字】数据同步,kettle,数据迁移,pg_hba.conf 【问题描述】使用kettle同步postgresql至崖山数据库时提示以下报错信息:【问题原因分析】pg_hba.conf 文件中没有正确配置允许从 IP 地址 连接到数据库的规则。pg_hba.conf 文件是 PostgreSQL 中…