#include "slogwidget.h" #include #include #include #include #include #include #include SLogWidget::SLogWidget(QWidget *parent):QWidget(parent), m_plwLog(new QListWidget(this)), m_pLayout(new QVBoxLayout(this)) { m_pLayout->addWidget(m_plwLog); setLayout(m_pLayout); //m_plwLog->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); } 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("effect_" + 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); }