因需要,需要重绘窗口的标题栏。
标题栏通过QWidget实现,可是当使用QPalette设置窗口的背景色后没有效果。
代码如下:
//QWidget类构造函数内 QPalette p; p.setBrush(this->backgroundRole(),QBrush(QColor(51,51,51))); this->setPalette(p);
如果这个QWidget直接show,是有背景色的,但是如果把它放到一个父Widget中时,它就没有了效果。
后来通过网上搜索,发现添加如下代码后就可以了:
//QWidget类构造函数内 this->setAutoFillBackground(true);
于是翻看帮助文档的autoFillBackground属性,我翻译如下:
QWidget的autoFillBackground属性 bool类型 这个属性决定widget的背景色是否自动填充。 如果bool为真,这个属性会在widget触发PaintEvent之前引起Qt填充QW