Как нарисовать фон QStyleOptionButton QStyle :: CE_CheckBox? - PullRequest
4 голосов
/ 10 февраля 2012

Я пытаюсь получить родительский фон и установить его в качестве цвета фона флажка.У меня есть этот метод рисования, который устанавливает флажок:

void paint( QPainter* painter,
            const QStyleOptionViewItem& option,
            const QModelIndex &index) const
{
    // Get item data
    bool value = index.data(Qt::UserRole).toBool();
    QString text = index.data(Qt::DisplayRole).toString();

    // Fill style options with item data
    const QStyle *style = QApplication::style();
    QStyleOptionButton opt;
    opt.state |= value ? QStyle::State_On : QStyle::State_Off;
    opt.state |= QStyle::State_Enabled;
    opt.text = text;
    opt.rect = option.rect;

    // Draw item data as CheckBox
    style->drawControl(QStyle::CE_CheckBox,&opt,painter);
}

, но как мне установить цвет фона этого флажка?

1 Ответ

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

Обновление:

Вместо этого вы можете попытаться инициировать QStyleOptionButton из виджета, таким образом вы получите палитру виджета.

QStyleOptionButton opt;
opt.initFrom(this);

Старое предложение:

Может сработать изменение opt.backgroundBrush:

opt.backgroundBrush = QBrush(QColor(0, 0, 0, 102));

или настройка opt.backgroundColor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...