Qt:关于自定义widget显示不出背景颜色的问题

重写paintEvent

添加头文件:

 

#include <QPaintEvent>
#include <QStyleOption>
#include <QPainter>

 

 

 

在.h文件中:public下

 

void paintEvent(QPaintEvent *e);

 

 

 

在.cpp文件中

 

void RightWidget::paintEvent(QPaintEvent *e){
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

 

 

 

①再对该自定义widget的样式表进行设置:

 

this->setStyleSheet("background: papayawhip;");

 

 

②或者直接在重写paintEvent时,利用笔刷等添加颜色

 

void RightWidget::paintEvent(QPaintEvent *e){
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);

 

 
    QPainterPath path;
    path.addRect(0, 0, 600, 500);
    p.setRenderHint(QPainter::Antialiasing);
    p.fillPath(path, QBrush(Qt::yellow));
    p.setPen(Qt::NoPen);
    p.setBrush(Qt::yellow);
    p.drawRect(rect());
}

 

 

 

此时需添加头文件

#include <QPainterPath>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值