如何用它的值改变QProgressBar文本的颜色?

The*_*der 7 c++ qt progress-bar

当它的值接近50%时,我不知道如何在进度条中部分更改文本的颜色.此效果自动出现在融合样式进度条中(下图).有谁知道这是怎么做的?

融合风格进度条

Gre*_*low 8

懒得编写工作示例代码,更不用说制作截图了.甚至没有50个代表.:-)

然而,问题有点令人感兴趣.我不知道如何才能完成这两个彩色文本.所以我查了一下:http: //qt.gitorious.org/qt/qtbase/blobs/stable/src/widgets/styles/qfusionstyle.cpp第1450ff行(http://qt.gitorious.org/qt/qtbase/blobs/ stable/src/widgets/styles/qfusionstyle.cpp#line1450).

    QRegion rightRect = rect;
    rightRect = rightRect.subtracted(leftRect);
    painter->setClipRegion(rightRect);
    painter->setPen(flip ? alternateTextColor : textColor);
    painter->drawText(rect,
                      bar->text,
                      QTextOption(Qt::AlignAbsolute|
                                   Qt::AlignHCenter|
                                   Qt::AlignVCenter));
    if (!leftRect.isNull()) 
    {
        painter->setPen(flip ? textColor : alternateTextColor);
        painter->setClipRect(leftRect);
        painter->drawText(rect,
                 bar->text,
                 QTextOption(Qt::AlignAbsolute|
                              Qt::AlignHCenter|
                              Qt::AlignVCenter));
    }
Run Code Online (Sandbox Code Playgroud)

基本上,文本在同一个矩形中绘制两次.每次都有适当的剪裁.如果你知道如何容易.:-)