我写了一个程序,大约要画三条曲线,每条曲线约有十万个点,在Linux下在CPU一般为0%,但是在wind下面CPU一般为100%,而且根本就不能用,窗口一动就没有响应,不知道是怎么回事
我创建QPainterPath的代码大致是这样写的(在函数BuildGrapherList中):
painterPath[0].moveTo(0,pData[0][0]);
painterPath[1].moveTo(0,pData[1][0]);
for(int i=1;i<nDataSize;i++)//nDataSize大约为十万
{
painterPath[0].lineTo(i,pData[0]
);
painterPath[1].lineTo(i,pData[1]);
}
painterEvent中是这样写的
tPainter.SetBrush(brush);
tPainter.drawRect(0,yTrans+fOceanLevel[0]-fFaultWidth[0])*yScale,size().width(),fFaultWidth[0]*yScale);
tPainter.setBrush(Qt::NoBrush);
tPainter.drawPath(painterPath[0]);
tPainter.drawpath(painterPath[1]);
源代码
GraView.cpp (20 K) 下载次数:8