想做一个容量大小的显示条。新建一个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); 这样才可以正常显示了。
效果图:
以后出问题了要多上网查资料。