obsidian/笔记文件/2.笔记/Qt_Unity_PC_SDK总结_第六章.md
2025-03-26 00:02:56 +08:00

4.3 KiB
Raw Permalink Blame History

在dll sdk工程里复制粘贴spdlog相关的工程文件参考spdlog功能整理

!Pasted image 20240804162831.png

回到工程,右键,点击添加

!Pasted image 20240804163536.png

!Pasted image 20240804163606.png

命名为Logger是调用spdlog相关

!Pasted image 20240804163803.png

引用的spdlog相关头文件

!Pasted image 20240804163919.png

声明日志系统的初始化、清理、级别设置日志对应的Dialog窗体、颜色相关 qtMessageHandler函数是处理不同级别的日志信息主要是切换颜色等操作 私有变量中包含自动管理内存的智能指针share_ptr参考shared_ptr还有log日志的输出文件路径和log日志颜色

!Pasted image 20240804163946.png

源文件include引用的相关头文件

!Pasted image 20240804165151.png

logger相关的日志文件输出路径、颜色对应的dialog窗体等初始化

!Pasted image 20240804165449.png

初始化initialize函数的具体实现传参是输出log信息的文件夹和文件路径 在最开始的时候是根据日期信息生成log日志文件的命名 然后创建标准输出的彩色日志通过set_pattern的形式设置显示模式 通过make_shared的形式完成智能指针的创建 再通过set_level的api接口设置日志级别再通过qInstallMessageHandler和qtMessageHandler配合对不同形式的日志输出做不同处理

!Pasted image 20240804165604.png

三个函数实现分别是清理日志实例设置日志输出级别还有设置日志对应的Dialog窗体

!Pasted image 20240804170114.png

qtMessageHandler函数接口的实现对应不同type类型的log信息输出不同样式的log信息最后通过QMetaObject元对象使用append的形式完成日志文本的输出设置参考QMetaObject元对象和属性机制

!Pasted image 20240804170215.png

!Pasted image 20240804170338.png

创建Dialog窗体对应spdlog插件功能

!Pasted image 20240804203237.png

!Pasted image 20240804203311.png

!Pasted image 20240804203327.png

命名为DebugDialog

!Pasted image 20240804203353.png

打开窗口ui设置布局相关

!Pasted image 20240804203434.png

拖曳组件过去

!Pasted image 20240806144936.png

勾选,设置只读

!Pasted image 20240806145109.png

设置一下,根组件的宽高

!Pasted image 20240806145214.png

布局设置,就会自适应

!Pasted image 20240806145352.png

保存修改,回到头文件,声明关闭事件相关函数; initShortcut是初始化快捷键的函数findSelectedText是寻找选中文本的函数getSelectedText获取选中文本内容的函数flush和append都是刷新文本显示相关

!Pasted image 20240806145512.png

源文件,引用的相关头文件

!Pasted image 20240806153638.png

findSelectedText函数查找文本的逻辑实现在textEdit组件中根据光标检索搜寻文本即可

!Pasted image 20240806154253.png

getSelectedText函数是根据光标获取到选中的文本

!Pasted image 20240806154416.png

刷新文本相关的实现

!Pasted image 20240806154700.png

initShortcut函数通过代码实例化一个新的QInputDialog输入窗体设置好标题和按钮、宽高等是用来搜索文本内容的 也实例化一个QShotcut快捷键相关Ctrl+F组合键,进行检索操作,参考Qt QShortCut 快捷键 原理、实现和应用 connect关联上上述解析 findSelectedText检索文本的函数实现

!Pasted image 20240806154743.png

析构函数窗体事件关闭相关其中closeEvent关闭函数虽然外部没有调用但实际上它是一个虚函数的重写qt内部关闭窗体的时候会自动调用参考QT中的closeEvent方法

!Pasted image 20240806155302.png

窗体的构造函数先通过setWindowFlags设置窗体属性然后resize重新设置一下窗体宽高 参考Qt 中 deleteLater 使用总结通过connect的形式把窗体关闭和退出和对象删除关联起来 最后,再调用一下,内部的快捷键设置,还有文本刷新相关;

!Pasted image 20240806155721.png