예제 #1
0
void ProjectCombo::indexChanged( int i )
{
	ProjectList ptl( mModel->recordList() );
	if( i < 0 || i >= (int)ptl.size() ) return;
	mCurrent = ptl[i];
	emit projectChanged( mCurrent );
}
예제 #2
0
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;
}
예제 #3
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;
     }
 }