Можно ли изменить стиль QProgressBar на OS X? - PullRequest
1 голос
/ 16 декабря 2011

Подход с использованием подкласса QStyle и установки палитры не работает (но работает для других базовых стилей на MyStyle).

void MyStyle::drawControl(ControlElement control, const QStyleOption *option,
                          QPainter *painter, const QWidget *widget) const
{    
    switch(control) 
    {
        case CE_ProgressBar: 
        {
            const QStyleOptionProgressBarV2 * pOpts =
            static_cast<const QStyleOptionProgressBarV2 *>(option);
            QStyleOptionProgressBarV2 oOpts(*pOpts);

            QColor progressColor(QColor::fromHsl(50, 160, 162));
            oOpts.palette.setColor(QPalette::Highlight, progressColor);

            // BASESTYLE is QMacStyle
            BASESTYLE::drawControl(control, &outputOptions, painter, widget);
        }
            break;

        default:
            BASESTYLE::drawControl(control, option, painter, widget);
    }
}

Есть ли другой способ управления внешним видомвиджетов под OS X?(Или это совершенно невозможно?)

1 Ответ

0 голосов
/ 15 февраля 2012

Конечно, вы можете использовать QSS , см. Пример QProgressBar

...