# JSDK **Repository Path**: jjw0123456/jsdkj ## Basic Information - **Project Name**: JSDK - **Description**: 基于qt的开源软件底层框架。对象与字段反射,静态类型描述;同步事件与异步任务机制;单元测试框架;常用的模板方法与模板数据结构等 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2023-11-27 - **Last Updated**: 2024-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JSDK #### 介绍 基于qt的开源软件底层框架 1、对象与字段反射,静态类型描述 2、同步事件与异步任务机制 3、单元测试框架 4、常用的模板方法与模板数据结构 5、多线程通信 6、对象的序列化与反序列化,支持std标准容器,多继承的多态对象。并提供文档概念统一管理对象的序列化与反序列化 7、提供事务概念,提供了数据的undo与redo 8、...等等其他框架支持【持续更新中】 #### 如何编译 1、需要qt5.9以上版本,py3.10版本,CMake3.10 2、配置环境变量 “QT5.12.10_DIR”(或者修改source文件夹中BuildProject.py关于Qt环境变量的名称即可)指向Qt msvc目录,并把lib,include等添加到Path中, 3、在根目录下,新建build与bin文件夹。启动start.bat既可以生成工程 #### 解决方案生成原理 1、解决方案生成依赖CMake,CMakeLists.txt由py文件自动生成,每一个CMakeConfig.json文件所在的文件夹则为一个工程根目录 2、py文件会自动搜索CMakeConfig.json并生成对应的CMakeLists.txt文件 3、增删文件,或者修改文件名称时,则需要启动Update.bat则会更新工程 4、增加新工程时,只需要从其他工程复制一个CMakeConfig.json文件,修改其中关于库名称,库依赖,头文件依赖,编译顺序等常规编译所需。同时会生成对应的当前工程的导入导出宏定义 5、关于CMakeConfig.json填写方式,填写工程名称即可,如果依赖qt5的库,则写在Link_Library_Name 下例如Qt5Core,编译时则会自动moc并识别,暂时不支持(.ui文件)。窗口需要用代码书写而不支持QtDesigner拖拽。 6、资源文件.qrc文件也支持自动加入工程并参与编译 #### 框架架构 1、采用面向接口编程的方式,所有对外暴露的结构都放到Public文件夹下,因此每一个工程都应该手动新建一个Public文件夹,也是CMakeConfig配置的重要一项