void CDBPickView::DrawFocused(CDC *pDC) { if(nActiveScreen==-1) return; int xw1=WaveformInfo[nActiveScreen]->xw1+4; int xw2=WaveformInfo[nActiveScreen]->xw1+WindowInfoXsize-4; int yw1=WaveformInfo[nActiveScreen]->yw1+4; int yw2=WaveformInfo[nActiveScreen]->yw2-4; CPen WhitePen(PS_SOLID,1,RGB(255,255,255)); CPen GrayPen(PS_SOLID,1,RGB(128,128,128)); CPen *oldPen=pDC->GetCurrentPen(); pDC->SelectObject(&GrayPen); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw1,MaxY-yw1); pDC->SelectObject(&WhitePen); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw2+1,MaxY-yw1); pDC->LineTo(xw2+1,MaxY-yw2); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw1,MaxY-yw1); pDC->MoveTo(xw2,MaxY-yw1+1); pDC->LineTo(xw1,MaxY-yw1+1); pDC->SelectObject(oldPen); }
void TimeBar::paintEvent( QPaintEvent * event ) { QPen pen(QColor(0,0,0)); QPen GrayPen(QColor(0,0,0,50)); QBrush bush(QColor(0,0,0,70)); QPainter painter(this); pen.setWidth(1); painter.setPen(pen); painter.setBrush(bush); for(int i=0;i<100;i++) { if (mZoom*i<=event->rect().right()) { //绘制大刻度 painter.drawLine(QPointF(mZoom*i,15),QPointF(mZoom*i,25)); painter.drawText(QPointF(mZoom*i,10),QString("%1.0S").arg(i)); //绘制小刻度 for (int j=1;j<mZoom/MIN_SCALE_SIZE;j++) { painter.drawLine(QPointF(MIN_SCALE_SIZE*j+mZoom*i,20),QPointF(MIN_SCALE_SIZE*j+mZoom*i,25)); } //绘制TimeLine QMapIterator<int,QVector<TimeLine*>*> mapIt(mTimeLine); while (mapIt.hasNext()) { mapIt.next(); for (QVector<TimeLine*>::const_iterator it=mapIt.value()->begin();it!=mapIt.value()->end();it++) { if ((*it)->startTime>=i*1000 && (*it)->startTime<=(i+1)*1000) { //计算TimeLine起始位置 float startX=mZoom*((*it)->startTime/1000.0); painter.drawRoundedRect (QRectF(startX,28+mapIt.key()*15+mapIt.key()*3,mZoom*((*it)->len()/1000.0),15),5,3); } } } //绘制对齐线 painter.setPen(GrayPen); painter.drawLine(QPointF(mZoom*i,15),QPointF(mZoom*i,event->rect().bottom())); painter.setPen(pen); } else { break; } } //绘制当前位置 QPen redPen(QColor(255,0,0,125)); painter.setPen(redPen); painter.setBrush(QBrush(QColor(255,0,0,125))); float startX=mZoom*(mCurrTime/1000.0); painter.drawLine(QPointF(startX,25),QPointF(startX,event->rect().bottom())); painter.drawRect(QRect(startX-3,10,6,15)); //绘制工具提示 if(!mToopTip.isEmpty()) { redPen.setColor(QColor(255,0,0)); painter.setBrush(QBrush(QColor(255,255,255))); painter.setPen(redPen); QFontMetrics fm(painter.font()); painter.drawRect(QRect(mToolTipX-3,mToolTipY-fm.height(),fm.width(mToopTip)+3,fm.height()+6)); painter.drawText(mToolTipX,mToolTipY,mToopTip); } }