#include "customtime.h" CustomTimeThread::CustomTimeThread(QObject *parent) : QThread{parent} {} void CustomTimeThread::setValue(QVector vector, QString string) { this->jd = vector; this->dataName = string; } void CustomTimeThread::run() { m_PlotView.clear(); rule.clear(); for (int var = 0; var < 4; ++var) { xData[var].clear(); yData[var].clear(); } //判断右侧数据是否为数字型 bool isEnum = namelist[dataName]; int bytesRead = 0; for (int i = 0; i < jd.size(); ++i) { QString tem = "这是一个无实际作用的标识"; for (int j = 0; j < g_param[jd[i]].size(); j++) { //更新进度条 bytesRead++; emit setProgressBar(bytesRead); QDateTime temTime = QDateTime::fromString(g_param[jd[i]][j]["时间"], "yyyy-MM-dd hh:mm:ss:zzz"); if (temTime >= beginTime && temTime < endTime) { if (g_param[jd[i]][j].contains(dataName)) { tem = g_param[jd[i]][j][dataName]; } else { if (tem == "这是一个无实际作用的标识") { continue; } } xData[jd[i]].append(temTime.toMSecsSinceEpoch() / 1000.0); if (isEnum) { yData[jd[i]].append(tem.toDouble()); } else { if (rule.contains(tem)) { yData[jd[i]].append(rule.indexOf(tem)); } else { rule.append(tem); yData[jd[i]].append(rule.indexOf(tem)); } } } } emit setPlotView(jd[i], isEnum, true); } emit setWidget(); quit(); }