《QT从基础到进阶·三十八》QWidget实现炫酷log日志打印界面

文章介绍了如何在Qt应用中使用LogPlugin插件实现log日志功能,包括打印正常、警告和错误信息,以及将Log界面集成到收缩栏和设置配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QWidget实现了log日志的打印功能,不仅可以在界面显示,还可以生成打印日志。先来看下效果,源码放在文章末尾:
在这里插入图片描述

LogPlugin插件类管理log所有功能,它可以获取Log界面并能打印正常信息,警告信息和错误信息,下面是它的接口描述:

class LOGGINGWRAPPER_EXPORT LogPlugin
{
public:
    virtual ~LogPlugin() {}

    virtual void Info(std::string message) = 0;   //打印绿色正常信息
    virtual void Warn(std::string message) = 0;   //打印黄色警告信息
    virtual void Error(std::string message) = 0;  //打印红色错误信息

    virtual QWidget* GetLogWidget() = 0;         //获取Log界面
    virtual void SetParent(QWidget* widget) = 0;   //设置父窗口
};

使用方法:

1、创建LogPlugin对象
LogPlugin是QPlugin插件实现,可以通过QPlugin读取LogPlugin.dll,把读到的QObject指针强转为LogPlugin对象。插件的使用可以看之前的篇章。

LogPlugin* logPlugin = qobject_cast<LogPlugin*>(objectPtr);

当然也可以直接new一个LogPlugin对象。

2、把Log界面放在收缩栏中
我把log界面放在了收缩栏中,可以看到鼠标点击log界面可以收起,再次点击可以展开,收缩栏的实现前面文章已经讲解过,这里不在赘述。QWidget实现收缩栏效果

 CollpasePagePlugin* collpasePagePlugin = qobject_cast<CollpasePagePlugin*>(objectPtr_);
 if (logPlugin && collpasePagePlugin)
  {
      collpasePagePlugin->GetWidget()->setParent(ui.centralWidget);
      collpasePagePlugin->SetLayout(m_centerQVBoxLayout, -1); //Put the folded plug-in into the layout
  }

上面代码先创建收缩栏对象,并设置收缩栏的父窗口和垂直布局,-1代表放置在收缩栏中的界面放在布局的最上层位置。

logPlugin->SetParent(collpasePagePlugin->GetWidget()); //Set Parent Class
QWidget* widget = logPlugin->GetLogWidget();

//Put the Logwidget into the folding plug-in
collpasePagePlugin->addWidget(widget, "Log", QIcon(":/Gen2WGMTFTester/images/routine/log.jpg"));

SetParent把log界面的父窗口设为收缩栏,并通过addWidget把Log窗口添加到收缩栏中显示

3、打印log信息

logPlugin->Info("green is normal");
logPlugin->Warn("yellow is warning");
logPlugin->Error("red is error");

这里分别打印绿色正常信息,黄色警告信息和红色错误信息。
在这里插入图片描述

想在项目下生成Log日志还需要做如下设置:
(1)在mainwindow主程序目录下创建config文件夹并把logconfig.properites文件拷贝进去
在这里插入图片描述

(2)附加包含目录添加logplus头文件目录
在这里插入图片描述
(3)附加库目录添加logplus的lib目录
在这里插入图片描述
(4)附加依赖项添加debug或release的lib文件名
在这里插入图片描述
记得更改下logplus.cpp下面的lib路径
在这里插入图片描述

源码下载

在这里插入图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦回阑珊

一毛不嫌多,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值