首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制QStyleOptionButton QStyle::CE_CheckBox背景的方法是什么?

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

Stack Overflow用户
提问于 2012-02-10 20:24:43
回答 2查看 2.4K关注 0票数 4

我正在尝试获取父背景并将其设置为复选框背景颜色。我有一个paint方法,它删除了复选框:

代码语言:javascript
复制
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);
}

但是我如何设置这个复选框的背景颜色呢?

EN

回答 2

Stack Overflow用户

发布于 2021-08-18 06:19:48

代码语言:javascript
复制
painter->fillRect(rect, color);
票数 0
EN

Stack Overflow用户

发布于 2012-02-10 20:36:09

更新:

相反,您可以尝试从小部件初始化QStyleOptionButton,这样您将获得小部件的调色板。

代码语言:javascript
复制
QStyleOptionButton opt;
opt.initFrom(this);

的老建议:

更改opt.backgroundBrush可能会起作用:

代码语言:javascript
复制
opt.backgroundBrush = QBrush(QColor(0, 0, 0, 102));

或设置opt.backgroundColor

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9227730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档