コード例 #1
0
ファイル: qvumeter.cpp プロジェクト: MakSim345/QT-Dev
void QVUMeter::paintValue()
{
    QPainter painter(this);
    painter.setWindow(0, 0, 100, 540);
    painter.setRenderHint(QPainter::Antialiasing);

    painter.setBrush(Qt::black);
    painter.drawRect(20, 15, 25, 25);
    painter.drawRect(55, 15, 25, 25);
    painter.setPen(Qt::gray);
    painter.drawLine(20, 40, 45, 40);
    painter.drawLine(45, 15, 45, 40);
    painter.drawLine(55, 40, 80, 40);
    painter.drawLine(80, 15, 80, 40);

    painter.setPen(QPen(colValue, 1));
    QFont valFont("Arial", dimVal, QFont::Bold);
    painter.setFont(valFont);

    QRectF leftR(20, 15, 25, 25);
    QString lVal = QString("%1").arg(leftVal, 0,'f', 0);
    painter.drawText(leftR, Qt::AlignCenter, lVal);
    QRectF rightR(55, 15, 25, 25);
    QString rVal = QString("%1").arg(rightVal, 0,'f', 0);
    painter.drawText(rightR, Qt::AlignCenter, rVal);

    emit valueLChanged(leftVal);
    emit valueRChanged(rightVal);

}
コード例 #2
0
ファイル: vumeter.cpp プロジェクト: nameqiaohe/quc
void VUMeter::drawValue(QPainter *painter)
{
    painter->save();

    //绘制左右音量值背景
    painter->setBrush(Qt::black);
    painter->drawRect(20, 15, 25, 25);
    painter->drawRect(55, 15, 25, 25);

    //绘制左右音量值背景右侧突出线条,形成立体感
    painter->setPen(Qt::gray);
    painter->drawLine(20, 40, 45, 40);
    painter->drawLine(45, 15, 45, 40);
    painter->drawLine(55, 40, 80, 40);
    painter->drawLine(80, 15, 80, 40);

    //设置音量值字体
    painter->setPen(QPen(colorValue, 1));
    QFont valFont("Arial", 12, QFont::Bold);
    painter->setFont(valFont);

    //绘制左音量值
    QRectF leftR(20, 15, 25, 25);
    QString lVal = QString("%1").arg(leftValue, 0, 'f', 0);
    painter->drawText(leftR, Qt::AlignCenter, lVal);

    //绘制右音量值
    QRectF rightR(55, 15, 25, 25);
    QString rVal = QString("%1").arg(rightValue, 0, 'f', 0);
    painter->drawText(rightR, Qt::AlignCenter, rVal);

    painter->restore();

    //发送音量值改变信号
    emit valueLChanged(leftValue);
    emit valueRChanged(rightValue);
}