代码奉上
#include <QValueAxis>
#include <QDateTimeAxis>
#include <QSplineSeries>
#include <QDateTimeAxis>
#include "flydatatablemodel.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
struct FlyDataModele
{
QDateTime Time;
double AccVol;
double FilaCur;
double FilaR;
double GridVol;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public:
QDateTime GetTimeFrom1904010108(double timestamp);
void setExcel();
void Apple();
void lineChart();
// void initChart();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
FlyDataTableModel *model;
QVector<QPointF> vectors;
QVector<QPointF> vector2;
QDateTime curDateTIme = QDateTime::currentDateTime();
};
#endif // MAINWINDOW_H
cpp
#include "mainwindow.h"
#include <QSplineSeries>
QT_CHARTS_USE_NAMESPACE // 引入命名空间,必须放在ui_widget.h前
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QDebug>
#include <QGridLayout>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setExcel();
Apple();
}
MainWindow::~MainWindow()
{
delete ui;
}
QDateTime MainWindow::GetTimeFrom1904010108(double timestamp)
{
qint64 years = (1970-1904);
qint64 leapYears = years / 4;
qint64 difVal = (years-leapYears)*365*24*60*60 + leapYears * 366*24*60*60 - 8*60*60;
double realTimestamp = timestamp - difVal;
return QDateTime::fromSecsSinceEpoch(realTimestamp, Qt::UTC);
}
void MainWindow::setExcel()
{
QStringList textList;
int rowCount = 0; //统计文件的行数
int cloumCount = 4; //列数已知
QFile file("C:/Users/huang'ji'yuan/Desktop/ActiveWorkBook.csv");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<"Can't open the file!"<<endl;
}
model = new FlyDataTableModel(this);
while(!file.atEnd())
{
QByteArray line = file.readLine();
rowCount++;
QString str(line);
auto list = str.split(",");
FlyDataModel item;
item.Time = GetTimeFrom1904010108(list[0].toDouble());
item.AccVol = list[1].toDouble();
item.FilaCur = list[2].toDouble();
item.FilaR = list[3].toDouble();
item.GridVol = list[4].toDouble();
model->append(item);
textList.append(line);
qDebug()<< str;
}
qDebug()<< rowCount;
qDebug()<< textList;
ui->tableView->setModel(model);
/*
for(int i = 0; i < rowCount; i++)
{
QStringList Item1 ;
QStringList Text1;
Item1= textList.at(i).split(",");
Text1<< Item1.at(0) <<Item1.at(1) <<Item1.at(2)<<Item1.at(3);
switch(i)
{
case 0:
ui->tableWidget->setHorizontalHeaderLabels(Text1);
break;
case 1:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(0, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 2:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(1, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 3:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(2, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 4:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(3, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 5:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(4, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 6:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(5, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 7:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(6, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 8:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(7, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 9:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(8, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 10:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(9, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 11:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(10, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 12:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(11, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 13:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(12, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 14:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(13, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 15:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(14, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 16:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(15, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 17:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(16, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 18:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(17, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 19:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(18, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 20:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(19, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 21:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(20, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 22:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(21, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 23:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(22, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 24:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(23, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 25:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(24, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 26:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(25, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 27:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(26, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 28:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(27, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 29:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(28, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 30:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(29, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 31:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(30, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 32:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(31, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 33:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(32, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 34:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(33, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 35:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(34, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 36:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(35, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 37:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(36, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 38:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(37, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 39:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(38, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 40:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(39, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 41:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(40, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 42:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(41, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 43:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(42, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 44:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(43, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 45:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(44, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 46:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(45, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 47:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(46, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 48:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(47, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 49:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(48, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 50:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(49, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 51:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(50, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 52:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(51, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 53:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(52, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 54:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(53, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 55:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(54, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 56:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(55, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 57:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(56, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 58:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(57, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 59:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(58, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 60:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(59, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 61:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(60, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 62:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(61, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 63:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(62, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 64:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(63, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 65:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(64, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 66:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(65, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 67:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(66, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 68:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(67, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 69:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(68, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 70:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(69, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 71:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(70, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 72:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(71, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 73:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(72, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 74:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(73, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 75:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(74, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 76:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(75, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 77:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(76, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 78:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(77, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 79:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(78, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 80:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(79, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 81:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(80, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 82:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(81, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 83:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(82, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 84:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(83, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 85:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(84, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 86:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(85, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 87:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(86, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 88:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(87, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 89:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(88, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 90:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(89, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 91:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(90, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 92:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(91, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 93:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(92, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 94:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(93, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 95:
for(int num = 0; num < 4; num++)
{
ui->tableWidget->setItem(94, num, new QTableWidgetItem(Text1.at(num)));
}
break;
case 96:
for(int num = 0; num < 4; num++)</