#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPlainTextEdit>
#include <QTimer>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void ViewInit();
void TextViewUpdate(quint16 domain, const QVector<quint32> &info);
void DataUpdate();
private:
Ui::MainWindow *ui;
QPlainTextEdit *m_txt[4];
QTimer m_timer; //定时器
QVector<QVector<quint32>> m_info;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDateTime>
#include <QVector>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ViewInit();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::ViewInit()
{
m_txt[0] = ui->txt0;
m_txt[1] = ui->txt1;
m_txt[2] = ui->txt2;
m_txt[3] = ui->txt3;
m_info.resize(4);
for(int i = 0; i < m_info.size(); ++i) {
m_info[i].resize(5);
for (int j = 0; j < m_info[i].size(); ++j) {
m_info[i][j] = 0;
}
}
connect(&m_timer, &QTimer::timeout, [=]()
{
DataUpdate();
});
m_timer.start(100);
}
void MainWindow::TextViewUpdate(quint16 domain, const QVector<quint32> &info)
{
QDateTime current_time = QDateTime::currentDateTime();
QString time = current_time.toString("yyyy-MM-dd hh:mm:ss");
QString str = "[" + time + "]";
for(int i = 0; i < info.size(); ++i) {
QString valueStr = QString::number(info.at(i));
valueStr = valueStr.leftJustified(7, ' ');
if (i != info.size() - 1) {
str += "[data" + QString::number(i) + "]" + valueStr;
} else {
str += "[data" + QString::number(i) + "]" + valueStr;
}
}
m_txt[domain]->appendPlainText(str);
}
void MainWindow::DataUpdate()
{
qDebug() << "m_info.size() = " << m_info.size() << endl;
for (int domain = 0; domain < m_info.size(); ++domain) {
for (int index = 0; index < m_info[domain].size(); ++index) {
m_info[domain][index]++;
}
TextViewUpdate(domain, m_info[domain]);
}
}