Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >23.QT记事本

23.QT记事本

作者头像
诺谦
发布于 2018-07-31 02:59:49
发布于 2018-07-31 02:59:49
1.4K00
代码可运行
举报
文章被收录于专栏:Linux驱动Linux驱动
运行总次数:0
代码可运行

描述

主要功能有:

  • 新建,打开,保存,另存为,打印,
  • 编辑,撤销,,拖放,xml配置文件读写,字体更改,查找替换
  • 菜单栏,工具栏,状态栏的实现

如下图所示:

效果如下所示:

源码下载地址: https://download.csdn.net/download/qq_37997682/10453294

源码文件介绍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MainWindowUI.cpp                     //实现创建记事本窗口
MainWindowSlots.cpp                  //实现各种槽函数
QAboutDialog.cpp                     //实现关于对话框
QFindDialog.cpp                      //实现查找对话框
QReplaceDialog.cpp                   //实现替换对话框
XmlStream.cpp                       //实现配置文件的读写

笔记

1.查找对话框的实现

步骤:

  • 获取当前文本框光标cursor位置
  • 以获取的位置为起始点,通过QString类的indexOf/lastIndexOf函数开始向前/向后查找目标
  • 若查找成功,则更改光标cursor位置,并选中目标高亮

选中目标高亮示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QTextCursor c = edit.textCursor();                       //获取文本里的光标对象
c.setPosition (1);                                       //设置光标 起始位置为1
c.setPosition ( 4, QTextCursor::KeepAnchor);             //设置瞄位置为4,表示将要高亮文本目标[1,4]
edit.setTextCursor(c);                                   //更新文本里的光标对象,

2.替换对话框的实现

和查找对话框一样,只是多了一步替换功能,所以可以继承于查找对话框

3.Xml配置文件的实现

配置文件用来保存程序最近一次运行退出前的状态(比如:记事本字体,窗口位置,工具栏显示等)

存储方式有:

  • 文本文件格式(XML,JSon等)
  • 数据库(Access,SQLite等)
  • 私有二进制文件格式

该记事本使用的是XML格式,通过QXmlStreamWriter和QXmlStreamReader类实现

(参考介绍: 22.QT-QXmlStreamReader解析,QXmlStreamWriter写入)

其中应用程序退出过程如下所示:

所以:

在启动主窗口的构造函数时,读取配置文件

程序退出后,则在closeEvent()关闭事件函数里,将当前程序消息保存到配置文件里

4.双击文本打开Qt记事本的实现

双击文件时,就会通过argc和argv参数传递到程序中,当argc大于1,则判断argv[1]是不是有效文件,如果是则打开该文件。

比如当双击单个文件Test.txt时:

  • argc = 2
  • argv[0]=程序自身位置
  • argv[1]= Test.txt的位置

5.*.ico文件图标实现

图标一般48*48即可

步骤

新建一个资源文件,名字以myapp.rc为例,添加内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IDI_ICON1       ICON    DISCARDABLE     " QT.ico"

在项目pro后缀名的文件中,添加以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RC_FILE += app.rc

注意: myapp.rc和QT.ico最好放在源码根目录

6.应用程序打包与发布

发布程序时必须保证所有的依赖库都存在

  • 在Windous中,使用Depends工具查看库依赖
  • linux中, 使用ldd (library dependencies)命令查看库依赖

7.部署程序执行环境

通过一个安装程序来实现自动部署执行环境

windous下 

  • installShield(收费,不开源)
  • innoSetup(免费,不开源)
  • NSIS(免费,开源)
  • hofosoft

Linux下

通过shell脚本开发部署程序

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Qt 学习记录
[],标识一个 Lambda 的开始,这部分必须存在,不能省略。外部变量访问方式说明符只能使用定义 Lambda 为止时 Lambda 所在作用范围内可见的局部变量(包括 Lambda 所在类的 this)。外部变量访问方式说明符有以下形式:
小简
2023/01/04
7.5K0
Qt 学习记录
Qt5实战第十五篇:Qt5综合实战项目——构建一个简易的文本编辑器
在前面的教程中,我们已经学习了Qt5的各种基础知识和高级特性。现在,让我们将这些知识综合应用到一个实际的项目中——构建一个简易的文本编辑器。这个项目将涵盖Qt5的多个方面,包括GUI设计、文件操作、信号与槽机制、以及可能的插件扩展(作为可选的高级功能)。
china马斯克
2025/01/08
4600
【QT】QT富文本
文档的光标主要基于QTextCursor类,文档的框架主要基于QTextDocument类。
半生瓜的blog
2023/05/13
2.2K0
【QT】QT富文本
Qt开发入门与环境搭建(基础篇)
当前专栏里的项目上位机APP是采用Qt开发的,这一章节主要是介绍Qt开发环境的安装,以及Qt开发环境入门的使用。如果你Qt没有任何基础,建议仔细看一遍,大致了解下Qt基础。
DS小龙哥
2025/05/27
7630
Qt开发入门与环境搭建(基础篇)
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
在 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 ) 博客中 , 创建了一个空的 Qt 桌面程序 , 并运行 ;
韩曙亮
2023/03/29
2.2K0
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
【QT】:QT(介绍、下载安装、认识 QT Creator)
所谓客户端就是直接和用户打交道的一端从程序,就比如 chrome,cctalk,……
IsLand1314
2024/12/20
10.5K0
【QT】:QT(介绍、下载安装、认识 QT Creator)
【QT】:QMainWindow 窗口
Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。一个主窗口最多只有一个菜单栏,位于主窗口顶部、主窗口标题栏下面。
IsLand1314
2025/02/18
6150
【QT】:QMainWindow 窗口
Qt教程一
Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。
用户11332765
2024/10/28
3750
Qt教程一
qt realease版本运行错误(qt发布release版本)
2、在Qt Creator下编译好的release下的 ImageProcesser.exe 拷贝到一个文件夹下面;
全栈程序员站长
2022/08/02
1.6K0
qt realease版本运行错误(qt发布release版本)
java课程设计简单记事本_java编写记事本程序源码
** 第一次在博客上发布文章。这是我在大二上学期的java课程设计,我的课程设计是做一个简易记事本。其中有这些要求:1. 摸拟windows操作系统中的记事本软件,开发一款简易记事本2. 具有新建文件、保存文件、复制和粘贴功能3. 可以根据自身能力添加其它功能。 一、设计概述 该程序为简易记事本,目的是摸拟windows操作系统中的记事本软件,开发一款简易记事本,是开发的记事本具有新建文件、保存文件、打开文件、复制、剪切、粘贴、设置背景颜色和字体等功能。 本程序使用了窗口交互界面,主要运用了Java swing组件和动作事件监听器,还用到了文件的输入输出流。记事本的界面参考了Window中记事本界面,并且根据课程设计要求做了适当的调整,相应地添加了其他功能。
全栈程序员站长
2022/11/01
2.2K0
看似简单的 Windows 记事本,其实维护起来并不简单
相信大家对 Windows 系统自带的记事本程序都不会陌生,在座的各位或许还有用它来写代码的经历。看上去它的功能非常简单,但你能否想到即便功能如此简单的程序,也需要有人专门维护?
顶级程序员
2018/07/23
7041
Qt5实战第四篇:Qt5的对话框与窗口
在Qt5应用程序开发中,对话框(Dialog)和窗口(Window)是两种常见的用户界面元素。对话框用于与用户进行简短的交互,如确认操作、输入数据等;而窗口则通常用于展示应用程序的主要内容或提供复杂的交互界面。本文将详细介绍Qt5中对话框与窗口的创建、使用以及它们之间的区别和联系。
china马斯克
2024/12/27
5290
Notepad2替代系统自带的记事本
事情是这样的,平时我经常把一些文字复制到记事本中编辑好了再复制到目标位置,可以在系统自带的记事本中替换删除一些内容,记事本小巧,占用很少的资源,我很喜欢;但今天复制的内容中有很多数字和一些我不想要的内容,我想到了正则,发现系统自带的记事本没有,找来一个更强的工具,Word,继续查找替换,发现word中也没有正则,估计是微软认为除了程序员会正则,一般人不会用;
黑泽君
2018/10/11
2.2K0
Notepad2替代系统自带的记事本
【QT】Qt 窗口 (QMainWindow)
QMainWindow 是一个为用户提供主窗口程序的类,继承自 QWidget 类,并且提供了一个预定义的布局。QMainWindow 包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个浮动窗口(铆接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个 中心部件(central widget),它是许多应用程序的基础,如文本编辑器,图片编辑器等。如下图为 QMainwindow 中 各组件所处的位置:
YoungMLet
2024/07/16
8580
【QT】Qt 窗口 (QMainWindow)
Notepad2替代系统自带的记事本Notepad
原博文链接:https://www.cnblogs.com/best/p/5819858.html
黑泽君
2018/10/11
3.8K0
Notepad2替代系统自带的记事本Notepad
QT的基本知识「建议收藏」
QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。 要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。
全栈程序员站长
2022/08/29
7030
QT的基本知识「建议收藏」
Qt学习--01
注意: 1.所创建项目路径不能有中文 2.所创建项目名称不能有中文和空格 3.默认创建有窗口类 widget,基类有三种选择:QWidget所有窗口的基类,QMainWindow带一些菜单栏,状态栏,工具栏的窗口,QDialog对话框窗口
大忽悠爱学习
2021/02/22
3100
Qt官方示例-文本查找器
❝该例子演示用户界面是在运行时从程序资源中加载,并实现文本查找的功能。 ❞   程序中的.ui界面文件都是使用QUiLoader动态加载的。 动态加载.ui文件   通过使用QUiLoad动态加载te
Qt君
2020/06/10
1.7K0
【QT】系统事件入门 -- 文件 QFile基础和示例
🔥 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于⽂件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件制或重命名等
IsLand1314
2025/03/21
2440
【QT】系统事件入门 -- 文件 QFile基础和示例
QT5.2 Assistant-设置应用程序图标
   在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,包括QT支持的Windows、MAC、Linux(KDE和GNOME)都有相应的方法。
ccf19881030
2022/12/01
2.7K0
相关推荐
Qt 学习记录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档