logwidget 추가
git-svn-id: svn://192.168.0.12/source@301 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
53
EffectUI/slogwidget.cpp
Normal file
53
EffectUI/slogwidget.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "slogwidget.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
#include <QListWidget>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QTime>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
SLogWidget::SLogWidget(QWidget *parent):QWidget(parent),
|
||||
m_plwLog(new QListWidget(this)), m_pLayout(new QVBoxLayout(this))
|
||||
{
|
||||
m_pLayout->addWidget(m_plwLog);
|
||||
setLayout(m_pLayout);
|
||||
}
|
||||
|
||||
|
||||
void SLogWidget::writeLog(const QString& _strLog)
|
||||
{
|
||||
QTime time = QTime::currentTime();
|
||||
QString strOut = time.toString("[hh:mm:ss] ") + _strLog;
|
||||
if(strOut.length() <= 1024)
|
||||
m_plwLog->addItem(strOut);
|
||||
else
|
||||
m_plwLog->addItem(strOut.left(1024));
|
||||
QDate date = QDate::currentDate();
|
||||
|
||||
QFile file(date.toString(Qt::ISODate)+ "_" + QString::number(QCoreApplication::applicationPid())+ ".log");
|
||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
|
||||
return;
|
||||
|
||||
QTextStream out(&file);
|
||||
out << strOut << "\n";
|
||||
file.close();
|
||||
|
||||
if (m_plwLog->count() > 512)
|
||||
{
|
||||
m_plwLog->removeItemWidget(m_plwLog->item(0));
|
||||
QListWidgetItem* item = m_plwLog->takeItem(0);
|
||||
delete item;
|
||||
}
|
||||
m_plwLog->setCurrentRow( m_plwLog->count() - 1 );
|
||||
m_plwLog->repaint();
|
||||
}
|
||||
|
||||
|
||||
void SLogWidget::slotWriteLog(const QString& _strLog)
|
||||
{
|
||||
writeLog(_strLog);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user