用setStyleSheet设置子窗体背景失败 及解决

想做一个容量大小的显示条。新建一个QWidget对象,背景设置为gray色,表示未使用的容量; 在窗体上画矩形,填充色为红色,表示容量已使用的大小。

 

代码如下(没有父窗体):

MyWidget::MyWidget(QWidget *parent)

    : QWidget(parent)
{
    setFixedSize(234, 50);
    setStyleSheet(tr("background-color: gray; \
                      border: 1px solid gray;   \
                      border-radius: 2px;       \
                     "));
 
}
 
 

void MyWidget::paintEvent(QPaintEvent *e)

{
    QPainter painter(this);
    painter.setPen(Qt::NoPen);
    painter.setBrush(Qt::red);
 
    painter.drawRect(0, 0, 30, 50);
    QWidget::paintEvent(e);
}

效果图:

是正常的。

 

问题来了,我想把一个QLabel窗体(说明容量的使用情况)和该窗体放到一个QWidget上,

可以看到容量显示条没背景色了。花了半天时间也没弄出来。第二天才发现,用setStyleSheet设置子窗体背景时,需要设置子窗体的属性,setAttribute(Qt::WA_StyledBackground); 这样才可以正常显示了。

 

效果图:

以后出问题了要多上网查资料。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值