- 创建自定义类LoggerControl 继承QListWidget
#pragma once
#include <QListWidget>
#include "Helper.h"
#include <QTime>
#include <QPainter>
class LoggerControl : public QListWidget
{
Q_OBJECT
public:
LoggerControl(QWidget *parent = nullptr);
~LoggerControl();
void logging(const QString &sInfo, const LogCategory &logCategory);
};
#include "LoggerControl.h"
LoggerControl::LoggerControl(QWidget *parent)
{
}
LoggerControl::~LoggerControl()
{}
void LoggerControl::logging(const QString & sInfo, const LogCategory & logCategory)
{
QIcon icon;
QListWidgetItem *item = new QListWidgetItem(QTime::currentTime().toString("hh:mm:ss.zzz") + " " + sInfo);
switch (logCategory)
{
case LogCategory_OK:
icon.addFile(QString::fromUtf8(":/AlPlannedCheck/Images/okay.png"), QSize(), QIcon::Normal, QIcon::Off);
break;
case LogCategory_WARNING:
icon.addFile(QString::fromUtf8(":/AlPlannedCheck/Images/warning.png"), QSize(), QIcon::Normal, QIcon::Off);
break;
case LogCategory_ERROR:
icon.addFile(QString::fromUtf8(":/AlPlannedCheck/Images/error.png"), QSize(), QIcon::Normal, QIcon::Off);
break;
case LogCategory_INFO:
icon.addFile(QString::fromUtf8(":/AlPlannedCheck/Images/info.png"), QSize(), QIcon::Normal, QIcon::Off);
break;
default: break;
}
item->setIcon(icon);
this->addItem(item);
this->scrollToBottom();
}
- ui界面添加QFrame并提升为LoggerControl

将类名填入到提升的类名称,点击添加按钮后点击提升即可将控件提升为LoggerControl
- 点击.qrc文件添加图片资源

- 调用方法
QString message = "ceshi";
int level = 0;
ui.loggerControl->logging(message, LogCategory(level));