void ProjectCombo::indexChanged( int i ) { ProjectList ptl( mModel->recordList() ); if( i < 0 || i >= (int)ptl.size() ) return; mCurrent = ptl[i]; emit projectChanged( mCurrent ); }
int main(int argc, char* argv[]) { PtrList<myLib> ptl(3); // create a list with three pointers to myLib class ptl.set(0,new myLib("shen",101)); // create a pointer to a myLib class as the first element of ptl ptl.set(1,new myLib("shen",102)); ptl.set(2,new myLib("shen",103)); PtrList<myLib>& ptl2=ptl; // only reference available Info << "ptl " <<endl; forAll(ptl, i) { Info << ptl[i] << endl; } Info << "resize to 2" << endl; ptl.setSize(2); Info << "ptl " <<endl; Info << ptl << endl; Info << "ptl2" <<endl; Info << ptl2 << endl; // output is the same return 0; }
void ScanWiew::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { QColor cred(255,0,0); QColor cgreen(0,100,0); QColor cgreen2(0,150,0); QColor cblue(0,0,255); QPen pred(cred); QPen pgreen(cgreen); QPen pgreen2(cgreen2); QPen pblue(cblue); painter->setPen(pgreen); //QFont fcnew("Coruier new", 10, QFont::Normal); QFontMetrics fm(painter->font()); int pixelsHeight = fm.height(); int lineCnt = laserRangeInMeter/arcDistanceInMeter; for(int i = 1; i <= lineCnt; i++) { QRectF rectangle(-(i*arcDistanceInPixels), -(i*arcDistanceInPixels), i*2*arcDistanceInPixels,i*2*arcDistanceInPixels); int spanAngle = endAngle - startAngle+5; painter->drawArc(rectangle, ((int)startAngle+90-5)*16, (spanAngle+5)*16); int x = -::sin((startAngle-5)*TwoPi/360)*(i*arcDistanceInPixels); int y = -::cos((startAngle-5)*TwoPi/360)*(i*arcDistanceInPixels); char str[100]; sprintf(str,"%d",i*(int)arcDistanceInMeter); int pixelsWide = fm.width(str); QPoint ptl(x-pixelsWide,y); QPoint pbr(x,y+pixelsHeight); QRect rt(ptl,pbr); painter->drawText(rt, Qt::AlignCenter, (QString)(str)); x = -::sin((endAngle+5)*TwoPi/360)*(i*arcDistanceInPixels); y = -::cos((endAngle+5)*TwoPi/360)*(i*arcDistanceInPixels); QPoint ptl1(x,y); QPoint pbr1(x+pixelsWide,y+pixelsHeight); QRect rt1(ptl1,pbr1); painter->drawText(rt1, Qt::AlignCenter, (QString)(str)); } lineCnt = (endAngle - startAngle)/angleDelta; double ang = startAngle; int distance = (laserRangeInMeter/arcDistanceInMeter)*arcDistanceInPixels; for(int i = 0; i <= lineCnt ; i++) { painter->setPen(pgreen); int x = -::sin(ang*TwoPi/360)*(distance+5); int y = -::cos(ang*TwoPi/360)*(distance+5); painter->drawLine(0,0,x,y); char str[100]; sprintf(str,"%d",(int)ang); int pixelsWide = fm.width(str); x = -::sin(ang*TwoPi/360)*(distance+20); y = -::cos(ang*TwoPi/360)*(distance+20); QPoint ptl(x-pixelsWide/2,y - pixelsHeight/2); QPoint pbr(x+pixelsWide/2,y+pixelsHeight/2); QRect rt(ptl,pbr); painter->drawText(rt, Qt::AlignCenter, (QString)(str)); ang += angleDelta; } double olcek = arcDistanceInPixels/arcDistanceInMeter; //printf("olcek: %f\n",olcek); pgreen.setWidth(pgreen.width()+2); painter->setPen(pgreen2); for(int i = 0; i < pointCnt; i++) { painter->drawLine(0,0,-plist[i].y*olcek,-plist[i].x*olcek); } painter->setPen(pred); plinel_t *root = g_line_map.first; while(root != NULL) { if(root->line.length > 0.05 && root->point_cnt > 3 )//MIN_LENGTH_LINE_TO_SEND) { painter->drawLine(-root->line.sp.y*olcek,-root->line.sp.x*olcek,-root->line.ep.y*olcek,-root->line.ep.x*olcek); } root = root->next; } }