绘制QStyleOptionButton QStyle :: CE_CheckBox背景的方法是什么?

时间:2012-02-10 12:24:43

标签: c++ qt

我正在尝试获取父背景并将其设置为复选框背景颜色。我有这个绘制方法来淹没复选框:

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 :(得分:-1)

<强>更新

您可以尝试从窗口小部件初始化QStyleOptionButton,这样您就可以获得窗口小部件的调色板。

QStyleOptionButton opt;
opt.initFrom(this);

旧建议:

更改opt.backgroundBrush可能有效:

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

或设置opt.backgroundColor