void VUMeter::drawBar(QPainter *painter) { painter->save(); QLinearGradient linGrad(50, 0, 50, 500); linGrad.setColorAt(0, colorHigh); linGrad.setColorAt(1, colorLow); linGrad.setSpread(QGradient::PadSpread); painter->setBrush(linGrad); //绘制柱状条 QRectF bar3(20, 50, 25, 450); painter->drawRect(bar3); QRectF bar4(55, 50, 25, 450); painter->drawRect(bar4); //绘制柱状背景 painter->setBrush(QColor(40, 40, 40)); double length = 450.0; double leftBar = abs(length * (minValue - leftValue) / (maxValue - minValue)); double rightBar = abs(length * (minValue - rightValue) / (maxValue - minValue)); QRectF bar1(20, 50, 25, 450 - leftBar); painter->drawRect(bar1); QRectF bar2(55, 50, 25, 450 - rightBar); painter->drawRect(bar2); painter->setPen(QPen(Qt::black, 2)); for (int i = 0; i <= 60; i++) { painter->drawLine(21, 500 - 450 * i / 60, 44, 500 - 450 * i / 60); painter->drawLine(56, 500 - 450 * i / 60, 79, 500 - 450 * i / 60); } painter->restore(); }
int main (void) { // non-lazy reference to foo2 p = &foo2; // lazy reference to foo4 foo4(); // non-lazy reference to bar2 p = &bar2; // lazy reference to bar4 and bar1 bar4(); bar1(); return 0; }
void QVUMeter::paintBar() { QPainter painter(this); painter.setWindow(0, 0, 100, 540); painter.setRenderHint(QPainter::Antialiasing); QLinearGradient linGrad(50, 0, 50, 500); linGrad.setColorAt(0, colHigh); linGrad.setColorAt(1, colLow); linGrad.setSpread(QGradient::PadSpread); painter.setBrush(linGrad); // draw color bar QRectF bar3(20, 50, 25, 450); painter.drawRect(bar3); QRectF bar4(55, 50, 25, 450); painter.drawRect(bar4); // draw background bar painter.setBrush(QColor(40, 40, 40)); double length = 450.0; double leftBar = abs(length * (min-leftVal)/(max-min)); double rightBar = abs(length * (min-rightVal)/(max-min)); QRectF bar1(20, 50, 25, 450-leftBar); painter.drawRect(bar1); QRectF bar2(55, 50, 25, 450-rightBar); painter.drawRect(bar2); painter.setPen(QPen(Qt::black, 2)); for (int i = 0; i <=60; i++) { painter.drawLine(21, 500-450*i/60, 44, 500-450*i/60); painter.drawLine(56, 500-450*i/60, 79, 500-450*i/60); } }
void prime4(void) { bar4(); /* { dg-warning "implicit declaration of function" } */ }