?? screen.cpp
字號(hào):
QRect rectDrawText(
rectYWindow.topLeft().x(),
-(int)rectYText.width()/2,
rectYText.height(),
rectYText.width() );
pCordinate.rotate(-90.0);
double dy = ( rectYWindow.width() - rectDrawText.height() ) / 2;
dy = dy > 0 ? dy : ( -dy );
pCordinate.translate( 0, -dy );
pCordinate.drawText(
rectDrawText.topLeft().x(),
rectDrawText.topLeft().y(),
rectDrawText.width(),
rectDrawText.height(),
AlignCenter, stringYTitle ); pCordinate.restore();
/*draw the calibration and calibration values of the x-axis*/ pCordinate.setPen( Qt::blue ); y0 = rectCordinate.bottomLeft().y(); for ( int i = 0; i <= numXTicks; i ++ ) { pCordinate.drawLine( x0 , y0, x0, y0 + BASELINELENGHT ); if ( 0 == i % (2*STEP) ) { pCordinate.save();
pCordinate.setPen( QPen( blue, 1, DotLine) );
pCordinate.drawLine( x0 , rectCordinate.bottomLeft().y(),
x0 , rectCordinate.topLeft().y() );
pCordinate.restore(); } x0 += STEP; }
/*write the title of x-axis*/
/* QRect rectXText(width()/2+FRAMEWIDTH-10*STEP, toNewRect.bottomLeft().y(),
20*STEP, 10*STEP);
pCordinate.drawText(rectXText.topLeft().x(), rectXText.topLeft().y(),
rectXText.width(), rectXText.height(),
AlignCenter, QObject::tr("Time (hh:mm:ss)") );
*/
pCordinate.save();
/* QRect tempXText(
-(int)rectXText.width() / 2, -(int)rectXText.height() / 2,
rectXText.width(), rectXText.height() );
dx = rectXText.topLeft().x() + rectXText.width() / 2;
dy = rectXText.topLeft().y() + rectXText.height() / 2;
dx = dx > 0 ? dx : ( - dx );
dy = dy > 0 ? dy : ( - dy );
pCordinate.translate( dx, dy );
pCordinate.drawText(tempXText.topLeft().x(), tempXText.topLeft().y(),
tempXText.width(), tempXText.height(),
AlignCenter, stringXTitle );
*/
pCordinate.drawText(rectXText.topLeft().x(), rectXText.topLeft().y(),
rectXText.width(), rectXText.height(),
AlignCenter, stringXTitle );
pCordinate.restore();
} bitBlt( this, 0, 0, &newBuffer, 0, 0, newBuffer.width(), newBuffer.height() ); }
void Screen::animate( double y ){ newY = y; if ( (int) Yval.size() <= (int) width() / 4 ) { Yval.append( newY ); } else { Yval.erase( Yval.begin() ); Yval.append( newY ); } updateCurve( drawPainter);}void Screen::updateCurve( QPainter &pDrawCurve){
/* QRect currentWindow = pDrawCurve.window();
QPainter pSaveBuffer( &saveBuffer );
QPainter pMidBuffer( &midBuffer );
pSaveBuffer.setWindow( currentWindow );
pMidBuffer.setWindow( currentWindow );
QRect saveBWindow = pSaveBuffer.window();
QRect midBWindow = pMidBuffer.window();
*/ copyBlt ( &saveBuffer, 0, 0,&newBuffer, 0, 0, newBuffer.width(), newBuffer.height() ); copyBlt ( &midBuffer, toNewRect.topLeft().x(), toNewRect.topLeft().y(), &saveBuffer, fromSaveRect.topLeft().x(), fromSaveRect.topLeft().y(),
fromSaveRect.width(), fromSaveRect.height() ); copyBlt ( &newBuffer, rectCordinate.topLeft().x()+1, rectCordinate.topLeft().y()+1, &midBuffer, rectCordinate.topLeft().x()+1, rectCordinate.topLeft().y()+1,
// rectCordinate.width()-2, rectCordinate.height()-2+12*STEP );
rectCordinate.width()-2, fromSaveRect.height() ); /* copyBlt(
&saveBuffer, saveBWindow.topLeft().x(), saveBWindow.topLeft().y(),
&newBuffer, currentWindow.topLeft().x(), currentWindow.topLeft().y(),
newBuffer.width(), newBuffer.height() );
copyBlt(
&midBuffer, toNewRect.topLeft().x(), toNewRect.topLeft().y(),
&saveBuffer, fromSaveRect.topLeft().x(), fromSaveRect.topLeft().y(),
fromSaveRect.width(), fromSaveRect.height() );
copyBlt(
&newBuffer, rectCordinate.topLeft().x()+1, rectCordinate.topLeft().y()+1,
&midBuffer, rectCordinate.topLeft().x()+1, rectCordinate.topLeft().y()+1,
// rectCordinate.width()-2, rectCordinate.height()-2+12*STEP );
rectCordinate.width()-2, fromSaveRect.height() );
*/ QValueVector<double>::iterator Yit = Yval.end(); double Ynew, Yold; int Xnew, Xold; Ynew = rectCordinate.bottomRight().y() - *(--Yit) - 1; Xnew = rectCordinate.bottomRight().x() -1; Yold = rectCordinate.bottomRight().y() - *(--Yit) - 1; Xold = rectCordinate.bottomRight().x() - STEP; //QPainter pDrawCurve( &newBuffer ); /*???????§????????????a?????????????o????????o???*/ pDrawCurve.setPen( Qt::blue ); pDrawCurve.drawLine(
toNewRect.bottomRight().x(), rectCordinate.bottomRight().y(), rectCordinate.bottomRight().x(), rectCordinate.bottomRight().y() ); //draw x-axis //static int numX = 0; pDrawCurve.drawLine( //draw the short calibration
toNewRect.bottomRight().x(), rectCordinate.bottomRight().y(), toNewRect.bottomRight().x(), rectCordinate.bottomRight().y() + BASELINELENGHT );
/*draw the dotline in the horizontal direction*/
int y0 = rectCordinate.bottomRight().y();
// static bool drawDotLine = FALSE;
pDrawCurve.save();
if ( drawDotLine )
{
for (int j =0; j < (numYTicks /5 ) /* -1) */; j++)
{
y0 -= 5*STEP;
pDrawCurve.setPen( QPen( blue, 1, DotLine) );
pDrawCurve.drawLine( toNewRect.bottomRight().x() , y0,
rectCordinate.bottomRight().x(), y0 );
}
}
pDrawCurve.restore();
drawDotLine = !drawDotLine;
/*draw the calibration values of x-axis*/
//static int numX = 0; if ( 0 == numX % (2*STEP) ) { /*è???????a???????o??????¥??????hh:mm:ss??¥è???€*/ int low = hour % 10; int high = hour / 10; QString timeString; timeString += ( QString( "%1%2:").arg(high).arg(low) ); low = min % 10; high = min / 10; timeString += ( QString( "%1%2:").arg(high).arg(low) ); low = sec % 10; high = sec / 10; timeString += ( QString( "%1%2").arg(high).arg(low) ); /*draw the long calibration */ pDrawCurve.drawLine(
toNewRect.bottomRight().x(),
rectCordinate.bottomRight().y() + BASELINELENGHT, toNewRect.bottomRight().x(),
rectCordinate.bottomRight().y() + 2 * BASELINELENGHT );
/*draw the dotline in the vertical direction*/
pDrawCurve.save();
pDrawCurve.setPen( QPen( blue, 1, DotLine) );
pDrawCurve.drawLine(
toNewRect.bottomRight().x(),
rectCordinate.bottomRight().y(),
toNewRect.topRight().x(),
rectCordinate.topRight().y() );
pDrawCurve.restore();
/*draw the calibration values of x-axis*/
if ( 0 == numX % (4*STEP) )
{
pDrawCurve.drawLine(
toNewRect.bottomRight().x(),
rectCordinate.bottomRight().y() + 2*BASELINELENGHT,
toNewRect.bottomRight().x(),
rectCordinate.bottomRight().y() + 3 * STEP );
pDrawCurve.setPen( Qt::black );
/* pDrawCurve.drawText( toNewRect.bottomRight().x() - 10 * STEP ,
rectCordinate.bottomRight().y() + 3 * STEP, 55, 20,
AlignRight | Qt::AlignHCenter, timeString );
*/
QRect rectCValue(
toNewRect.bottomRight().x() - 9 * STEP,
toNewRect.bottomRight().y() - BASEFONTHEIGHT+2,
10 * STEP,
BASEFONTHEIGHT);
pDrawCurve.drawText(
rectCValue.topLeft().x(),
rectCValue.topLeft().y(),
rectCValue.width(),
rectCValue.height(),
AlignRight | Qt::AlignHCenter,
timeString );
}
sec += 10; if ( 60 == sec ) { sec = 0; min += 1; if ( 60 == min ) { min = 0; hour += 1; if ( 60 == hour ) hour = 0; } } } numX ++; if ( numX >= 100 ) numX = 0; /*???????????°é??é????°?????°?????2?o*/ pDrawCurve.setPen( Qt::black ); pDrawCurve.drawLine( Xold, (int)Yold, Xnew, (int)Ynew ); bitBlt( this, 0, 0, &newBuffer, 0, 0, newBuffer.width(), newBuffer.height() ); }
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -