这是我从txt文本中读取数据并想动态显示的部分程序,文本数据共三十个存入数组,每秒读十个数据,循环读取并绘图实现动态的目标,但实际却不能实现自己的目标:实际结果为曲线存在一秒后就没再显示了,但是调试发现数据一直在输出,请大神指教,感激不尽。
QFile file("F:/qwt-6.1.0/examples/refreshtest-5-26-eng-1/test.txt");
if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
qDebug()<<file.errorString();
}
int i = 0;
QTextStream in(&file);
while(!in.atEnd())
{
data = in.readLine();//逐行读数
value = data.toDouble();//数据格式转换
xs.append(i);
ys.append(value);//数据保存到数组xs,ys
i++;
}
for(int i = 0; i < 10; i++)
{
x1[i = xs[i];
y1[i = ys[i];//取数组的前十对数据存入数组x1,y1
}
d_curve->setSamples(x1, y1,10);//传画曲线的数据
d_clock.start();//系统时钟开启
this->startTimer(1000);//每一秒进行重画
/*文本数据共三十个,每一秒读十个,循环读取并显示,实现动态绘图*/
void Plot::timerEvent(QTimerEvent *)
{
num = 3;
for(int i = 0; i < num; i++)
{
for(int j = 0; j < 10; j++)
{
x1[j = xs[i*10 + j];
y1[j = ys[i*10 + j];
qDebug()<<x1[j]<<y1[j];
}
if(i == num)
{
i = 0;
}
}
d_curve->setSamples(x1, y1, 10);
replot();
}