logplus/logPlus/ConsoleOutputWidget.cpp
2025-10-29 17:23:30 +08:00

45 lines
1.3 KiB
C++

#include "ConsoleOutputWidget.h"
#include <QScrollBar>
#include <QDateTime>
//#include "geometryutils.h"
void AppendConsole(Priority priority, const QString &output);
ConsoleOutputWidget::ConsoleOutputWidget(const QString &title, QWidget *parent , Qt::WindowFlags flags )
:QDockWidget(title,parent,flags)
{
Console=new QTextEdit(this);
this->setWidget(Console);
Console->document()->setMaximumBlockCount(5000);
//Console->setEnabled(false);
}
ConsoleOutputWidget::~ConsoleOutputWidget()
{
QVector<QTextEdit*> aa;
aa.append(Console);
qDeleteAll(aa);
}
ConsoleOutputWidget* ConsoleOutService()
{
static ConsoleOutputWidget* singleInstance= new ConsoleOutputWidget("", nullptr, 0);
return singleInstance;
}
void ConsoleOutputWidget::AppendConsole(QColor c, const QString &output)
{
Console->setTextColor(c);
Console->verticalScrollBar()->setValue(Console->verticalScrollBar()->maximum());
Console->insertPlainText("["+QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+"]"+output);
Console->insertPlainText("\n");
}
void AppendConsole(Priority priority,const QString &output)
{
ConsoleOutputWidget *Console= ConsoleOutService();
if(priority==PAI_ERROR) Console->AppendConsole(Qt::red,output);
else if(priority==PAI_WARN) Console->AppendConsole(Qt::darkYellow, output);
else if(priority==PAI_INFO) Console->AppendConsole(Qt::blue, output);
}