#include "view.h" #include MyView::MyView(QWidget *parent) : QWidget(parent) { } void MyView::paintEvent(QPaintEvent *event) { /* QPainter paint; paint.begin(this); paint.setBrush(Qt::white); paint.drawRect(plotrec); QString str=m_CurveName+"曲线数值分布图"; QRect rec=QRect(plotrec.left(),plotrec.top(),plotrec.width(),30); paint.drawText(rec, Qt::AlignHCenter| Qt::AlignVCenter,str); paint.end();*/ QPainter paint; paint.begin(this); // paint.setBrush(Qt::lightGray); //paint.drawRect(plotrec); QRect plotrec=widgetRec; QRect rec1=widgetRec; QString str=m_CurveName+"曲线数值分布图"; QRect rec=QRect(plotrec.left(),plotrec.top(),plotrec.width(),30); paint.drawText(rec, Qt::AlignHCenter| Qt::AlignVCenter,str); QRect rthy=plotrec; rthy.adjust(70,40,-60,-60); int x0=rthy.left(),y0=rthy.bottom(),h=rthy.height(),w=rthy.width(); int ptotal=point[0],pmax=point[0]; for(int i=1;i<10*m_SmallGrid;i++) { ptotal+=point[i]; if(pmax=m_Xmax2||right<=m_Xmin2)paint.setBrush(Qt::green); //if(iiend)dc.FillRect(plotrec,&GreenBrush); else paint.setBrush(Qt::red); paint.drawRect(plotrec); } if(!m_DrawLjpl) { paint.end(); return; } //画累计频率线 int pp=0; QPen pen(Qt::red); pen.setStyle(Qt::SolidLine); pen.setWidth(2); paint.setPen(pen); float x1=x0,y1=y0; for(int i=0;i<10*m_SmallGrid;i++) { pp+=point[i]; float x=x0+(float)((i+1.)*w/(10.*m_SmallGrid)); float y=(float)pp/(float)ShowPoint;//ptotal; paint.drawLine(x1,y1,x,y0-y*h); x1=x,y1=y0-y*h; } paint.end(); }