# GUI 插件开发指导 * 以前可视柜台启动界面由实体单独管理,改动范围仅在实体层,现在启动界面由**SpShell**生成渲染 * 为了让大家能添加自己的交互界面,而不涉及到框架改动,框架添加了动态加载子窗口界面的功能,以扩展应用的业务功能 * 该功能使用了**QT Plugin**的机制,所以开发流程需要按照QT的方式实施 ## 开发指引 ### 工程创建 * 在Plugins文件夹下创建自己的窗口库CMake工程,要求输出的是动态库(`.so`或.`dll`) * 继承 *Plugins/include/CustomImportInterface.h* 中的类:`CustomImportInterface`,并先声明实现相关的纯虚成员函数 * 输出目录为终端的*bin/plugins*文件夹 ### 转移战场,设计窗口类 * 先使用**QtCreator**以`QWidget`控件设计和开发相关的功能,记住是`QWidget`,因为接口限定提取出来的是该类型 * 将实现的`QWidget`类和相关的其他实现文件(如有)迁移到先前建立的Plugin工程下 * 实现`CustomImportInterface`的`getComponent`接口返回该`QWidget`类的对象指针 ### 输出运行 * 编译Plugins工程并运行框架 * 查看 工具 -> 选项 中,在*自定义*菜单选项的子菜单下查看是否该新控件选项,点击看右侧的实现效果