#include "tools_Index1.h" #include "ui_tools_Index1.h" Tools_Index1::Tools_Index1(QWidget *parent) : ToolsWidget(parent), ui(new Ui::Tools_Index1) { ui->setupUi(this); //load qss QFile file(":/qss/Setting.qss"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet = filetext.readAll(); this->setStyleSheet(stylesheet); file.close(); QDateTime current = QDateTime::currentDateTime(); log_file_name = QString("./log/textlog/%1.log").arg(current.toString("yyyyMMddHHmmss")); /*log_file = new QFile(log_file_name); if(log_file->open(QIODevice::WriteOnly | QIODevice::Text)) { } */ StringModel = new QStringListModel(ui->listView); ui->listView->setModel(StringModel); ui->listView->scrollToBottom(); //ui->listView->setAlternatingRowColors(); setLog(tr("welcome")); setLog(tr("uav ground control system")); } Tools_Index1::~Tools_Index1() { if(log_file) { if(log_file->isOpen()) { log_file->close(); } log_file->deleteLater(); } delete ui; } void Tools_Index1::resizeEvent(QResizeEvent *event) { Q_UNUSED(event) //scope->setGeometry(ui->frame->geometry()); update(); } void Tools_Index1::setLog(const QString &message) { QString time = QDateTime::currentDateTime().toString("hh:mm:ss.zzz"); static int count = 0; QStringList slist = StringModel->stringList(); slist.append(tr("[%1] %2 >> %3").arg(QString::number(count)).arg(time).arg(message)); StringModel->setStringList(slist); ui->listView->scrollToBottom(); count ++; QFile file(log_file_name); if(file.open(QIODevice::Append | QIODevice::Text) ) { QString s; s.append(tr("[%1] %2 >> %3\n").arg(QString::number(count)).arg(time).arg(message)); QTextStream out(&file); out << s; file.flush(); file.close(); } } void Tools_Index1::on_pushButton_ExportLog_clicked() { if(StringModel->stringList().size() > 0) { QFileDialog *dlg = new QFileDialog(); QString fileName = dlg->getSaveFileName(this, tr("Selete Path of File..."), log_file_name, tr("log file (*.log)")); if(!fileName.isEmpty()) { log_file = new QFile(fileName); if(log_file->open(QIODevice::WriteOnly)) { QStringList l = StringModel->stringList(); QDataStream data(log_file); foreach (QString s, l) { s.append("\r\n"); log_file->write(s.toUtf8()); } log_file->close(); } } } else { //emit sho } }