4.3 KiB
在dll sdk工程里,复制粘贴,spdlog相关的工程文件,参考spdlog功能整理
回到工程,右键,点击添加
命名为Logger,是调用spdlog相关
引用的spdlog相关,头文件
声明日志系统的初始化、清理、级别,设置日志对应的Dialog窗体、颜色相关; qtMessageHandler函数,是处理不同级别的日志信息,主要是切换颜色等操作; 私有变量中,包含自动管理内存的,智能指针share_ptr,参考shared_ptr,还有log日志的输出文件路径,和log日志颜色;
源文件,include引用的,相关头文件
logger相关的日志文件输出路径、颜色,对应的dialog窗体等,初始化
初始化initialize函数的具体实现,传参是输出log信息的文件夹和文件路径; 在最开始的时候,是根据日期信息,生成log日志文件的命名; 然后,创建标准输出的,彩色日志,通过set_pattern的形式,设置显示模式; 通过make_shared的形式,完成智能指针的创建; 再通过set_level的api接口,设置日志级别,再通过qInstallMessageHandler和qtMessageHandler配合,对不同形式的日志输出,做不同处理;
三个函数实现,分别是清理日志实例,设置日志输出级别,还有设置日志对应的Dialog窗体
qtMessageHandler函数接口的实现,对应不同type类型的log信息,输出不同样式的log信息,最后,通过QMetaObject元对象,使用append的形式,完成日志文本的输出设置,参考QMetaObject元对象和属性机制
创建Dialog窗体,对应spdlog插件功能
命名为DebugDialog
打开窗口ui,设置布局相关
拖曳组件过去
勾选,设置只读
设置一下,根组件的宽高
布局设置,就会自适应
保存修改,回到头文件,声明关闭事件相关函数; initShortcut是初始化快捷键的函数,findSelectedText是寻找,选中文本的函数,getSelectedText获取选中文本内容的函数,flush和append,都是刷新文本显示相关;
源文件,引用的相关头文件
findSelectedText函数,查找文本的逻辑实现,在textEdit组件中,根据光标,检索搜寻文本即可
getSelectedText函数,是根据光标,获取到,选中的文本
刷新文本相关的实现
initShortcut函数,通过代码,实例化一个新的QInputDialog输入窗体,设置好标题和按钮、宽高等,是用来搜索文本内容的;
也实例化一个QShotcut快捷键相关,是Ctrl+F
组合键,进行检索操作,参考Qt QShortCut 快捷键 原理、实现和应用;
connect关联上,上述解析 findSelectedText检索文本的函数实现;
析构函数,窗体事件关闭相关,其中closeEvent关闭函数,虽然外部没有调用,但实际上,它是一个虚函数的重写,qt内部关闭窗体的时候,会自动调用,参考QT中的closeEvent方法
窗体的构造函数,先通过setWindowFlags设置窗体属性,然后resize重新设置一下,窗体宽高; 参考Qt 中 deleteLater 使用总结,通过connect的形式,把窗体关闭和退出,和对象删除,关联起来; 最后,再调用一下,内部的快捷键设置,还有文本刷新相关;