- 创建自定义类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));
标签:LogCategory,自定义,VS2017,QIcon,QString,QT5.9,include,LoggerControl,icon
From: https://www.cnblogs.com/xujiangsu/p/18175786