#include "customthread.h" CustomThread::CustomThread(QObject *parent) : QThread{parent} {} void CustomThread::setValue(QVector vector, QString string) { this->jd = vector; this->dataName = string; } void CustomThread::run() { m_PlotView.clear(); rule.clear(); for (int var = 0; var < 5; ++var) { xData[var].clear(); yData[var].clear(); } //判断右侧数据是否为数字型 bool isEnum = namelist[dataName]; int bytesRead = 0; for (int i = 0; i < jd.size(); ++i) { int X = 0; 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 (!isTime) { continue; } if (tem == "这是一个无实际作用的标识") { continue; } } if (isTime) { xData[jd[i]].append(temTime.toMSecsSinceEpoch() / 1000.0); } else { xData[jd[i]].append(X++); } 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, isTime); } emit setWidget(); quit(); } void CustomThread::setIsTime(bool IsTime) { CustomThread::isTime = IsTime; }