在平台开发中,用户界面(UI)的友好性和交互性直接关系到应用程序的用户体验和满意度。一个高效、直观的信息展示机制,不仅能够提升用户的操作效率,还能在关键时刻为用户提供必要的指导和反馈。为了满足这一需求,我们特别设计并开发了FITKCompMessageWidget信息输出组件。
1 组件功能
信息输出组件是一个UI组件,是一个独立的QWidget对象,用于软件运行时的信息输出,包含常规信息、警告信息、错误信息、以及其他信息(求解过程信息输出)等, 同时具备右键菜单功能,可以实现信息窗口的清空与保存文本文件等操作。
2 组件依赖
该组件依赖平台核心层中的FITKAppFramework与FITKCore两个模块。
3 组件主要类
类名 | 所在文件 | 功能 |
ConsoleComponent | FITKConsoleComponent | 组件接口类,用于组件加载与组件管理,实现信息窗口的管理。 |
FITKConsole | FITKConsole | 信息输出窗口UI与功能实现,创建时自动关联FITKAppFramework中的outputMessageSig信号,实现信息自动输出。 |
4 组件使用示例
该组件的使用可以概括分为三部分:组件加载、创建窗口、发送消息。需要注意,在同一个应用中的多个信息窗口将会显示相同的信息,因此一般来说一个应用中只创建一个信息输出窗口。组件加载通过注册到AppFramework的组件生成器(FITKComponentFactory)的子类对象实现。示例代码如下:
1.#include “FITKConsoleComponent.h”
2.class MyComponentFactory : public AppFrame::FITKComponentFactory
3.{
4.public:
5. MyComponentFactory () = default;
6. ~MyComponentFactory () = default;
7. QList<AppFrame::FITKComponentInterface *> createComponents() override
8. {
9. QList<AppFrame::FITKComponentInterface *> comps;
10. //创建信息窗口组件
11. comps << new Comp::ConsoleComponent();
12. // 创建其他组件
13. return comps;
14. }
15.};
完成组件创建之后,在主界面初始化的时候需要创建窗体,并嵌入到需要的位置上,创建窗体的通过组件的getWidget函数可以实现,而组件则是从应用程序架构中的组件管理器查询得到,示例代码如下:
1.//获取组件
2. auto conWidgetComp = FITKAPP->getComponents()->getComponentByName("MessageConsole");
3.//强制类型转换,判断类型是否正确
4.Comp::ConsoleComponent *conWidgetInter = dynamic_cast<Comp::ConsoleComponent *>(conWidgetComp);
5. if (nullptr == conWidgetInter) return;
6.QWidget* messWidget = conWidgetInter->getWidget();
7.//将messWidget放置到需要的位置
8.//do something else
当需要向信息输出窗口输出信息时,可直接通过应用程序框架中的FITKMessage提供的接口输出。这写接口将信号封装,能够保证线程安全。示例代码如下:
1.#include "FITKAppFramework/FITKMessage.h"
2.//正常输出,绿色字体
3.AppFrame::FITKMessageNormal("normal message");
4.//警告输出,黄色字体
5.AppFrame::FITKMessageWarning("warning message");
6.//错误输出,红色字体
7.AppFrame::FITKMessageError("error message");
8.//信息输出,黑色字体
9.AppFrame::FITKMessageInfo("message");