VS2017+QT5.9.1 自定义loggerControl

  1. 创建自定义类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();

}
  1. ui界面添加QFrame并提升为LoggerControl

    将类名填入到提升的类名称,点击添加按钮后点击提升即可将控件提升为LoggerControl
  2. 点击.qrc文件添加图片资源
  3. 调用方法
	QString message = "ceshi";
	int level = 0;
	ui.loggerControl->logging(message, LogCategory(level));
posted @ 2024-05-06 20:57  小徐的小菜园  阅读(22)  评论(0)    收藏  举报